完成oracle数据库和图形化工具pl/sql的安装并成功登陆后,创建一个sql窗口
并输入以下语句并按f8执行:
select * from dual
执行成功后说明oracle的开发环境已经搭建好了。
那么,这个dual表到底是什么呢?
dual常用在没有目标表的Select语句块中,是存在于oracle的一张虚拟表。
是Oracle与数据字典一起自动创建的一个表,它只有一列:DUMMY,其数据类型为:VARCHAR2(1)。DUAL中只有一行数据:'X'。
所以以上语句查询出来的结果只有一个‘x’
dual表的主要用途有:
select user from dual --获取当前登录的用户名
select sysdate from dual ; --查询完整格式的时间
select to_char(sysdate,'yyyy-mm-dd') from dual; --查询特定格式的时间
--生成随机数
select dbms_random.random from dual--生成任意大小的随机数
select mod(dbms_random.random,100) from dual --生成-100到100之间的随机数
select abs(mod(dbms_random.random,100)) from dual --加上个abs(绝对值)后,随机生成0到100之间的随机数
select dbms_random.value(10,20) from dual --产生一个10~20之间的随机数
select round(dbms_random.value(0,100)) from dual --产生一个10~20之间的随机整数
--数字取整
select ceil(4.4) from dual --向上取整,输出5
select floor(4.4) from dual --向上取整,输出4
select round(3.6) from dual --四舍五入,输出4
--生成字符串 'u'代表大写字母 'l'代表小写字母 'a'代表大、小写字母 'x'代表数字、大写字母
select dbms_random.string('p',4) from dual -- p 代表可打印字符,4代表长度
select dbms_random.string('x',4) from dual --可用于生成日常数字与字母验证码组合
---------------------------------------------------------------------------------------------------------------------------------------------------------------
关于to_date和to_char
o_date("要转换的字符串","转换的格式") 两个参数的格式必须匹配,否则会报错。即按照第二个参数的格式解释第一个参数。
to_char(日期,"转换格式" ) 即把给定的日期按照“转换格式”转换。
-- interval(区间)关键字,可用于提示截止日期 interval'参数'
select sysdate,sysdate+interval '3' day from dual --日期往后三天
之前数据库所用的max和min都是求同列的最值,oracle提供了三个函数来计算同行的最值
--greatest ‘取最大值’
select greatest('2018-02-16','2018-02-06') as 最晚日期 from dual --返回日期列表中最晚日期
select greatest(5,6,8,9) from dual --返回最大值
select greatest('abc','aaa','a','abcd') from dual --按字母排序,返回最大
--least ‘取最小值’
select least(5,6,8,9) from dual --返回最大值
--COALESCE 返回该表达式列表的第一个非空value。
select coalesce(null,'18','15') from dual
当应用到同一张表上的同行数据比较时
select coalesce(t.字段1,t.字段2) from table t