日期:2014-05-16  浏览次数:20412 次

oracle简单学习总结(三)——函数

一、数值型函数

函 数 功 能 实 例 结 果
abs 求绝对值函数 abs(?5) 5
sqrt 求平方根函数 sqrt(2) 1.41421356
power 求幂函数 power(2,3) 8
cos 求余弦三角函数(用弧度) cos(3.14159) ?1
mod 求除法余数 mod(1600, 300) 100
ceil 求大于等于某数的最小整数  ceil(2.35)  3
floor 求小于等于某数的最大整数 floor(2.35) 2
round 按指定精度对十进制数四舍五入 round(45.923, 1)
round(45.923, 0)
round(45.923, ?1)
45.9
46
50
trunc 按指定精度截断十进制数 trunc(45.923, 1)
trunc(45.923)
trunc(45.923, ?1)
45.9
45
40

二、oracle中的dual表

2.1 理解

1、DUAL是 SYS用户的一个TABLE.

2、Dual是Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select语句块中,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。

3、DUAL就是个一行一列的表,该表和系统中的其他表一样,一样可以执行插入、更新、删除操作,还可以执行drop操作。但是不要去执行drop表的操作,否则会使系统不能用,数据库起不了,会报Database startup crashes with ORA-1092错误。

2.2 DUAL 能做什么

1、查找当天日期
SQL> select sysdate from dual;

2、查找当前日期的当月第一天
SQL> select trunc(sysdate,’MONTH’) from dual;

3、查找当前日期的当月最后一天
SQL> select trunc(last_day(sysdate)) from dual;

4、查看当前用户,可以在SQL Plus中执行下面语句
SQL> select user from dual;

5、获得当前系统时间
SQL> select to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual;

6、获得主机名
SQL>
select SYS_CONTEXT(‘USERENV’,'TERMINAL’) from dual;

7、获得当前locale
SQL>
select SYS_CONTEXT(‘USERENV’,'language’) from dual;

8、获得一个随机数
SQL>
select dbms_random.random from dual;

9、查看当前日期、时间
SQL> select sysdate from dual;

10、获得序列your_sequence的下一个值
SQL>
select your_sequence.nextval from dual;

11、获得序列your_sequence的当前值