实习总结(oracle虚拟表dual)2018年12月

完成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

 

你可能感兴趣的:(实习总结(oracle虚拟表dual)2018年12月)