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

2014-11-24 15:21:28 · 作者: · 浏览: 2

相关链接:
oracle简单学习总结(一)——sql
http://www.2cto.com/database/201210/159545.html;
oracle简单学习总结(二)——查询
http://www.2cto.com/database/201210/159556.html

一、数值型函数
函 数
功 能
实 例
结 果
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的当前值
SQL>select your_sequence.currval from dual;
12、可以用做计算器
参考网址:http://www.2cto.com/database/201209/152484. html
三、字符型函数
函数名称
功 能
实 例
结 果
ascii
获得字符的ASCII 码
Ascii('A')
65
chr
返回与ASCII 码相应的字符
Chr(65)
A
lower
将字符串转换成小写
lower ('SQL Course')
sql course
upper
将字符串转换成大写
upper('SQL Course')
SQL COURSE
initcap
将字符串转换成每个单词以大写开头
initcap('SQL course')
Sql Course
concat
连接两个字符串
concat('SQL', ' Course')
SQL Course
substr
给出起始位置和长度,返回子字符串
substr('String',1,3)
Str
length
求字符串的长度
length('Wellcom')
7
instr
给出起始位置和出现的次数,求子字符串在字符串中出现的位置
instr('String', 'r',1,1)
3
lpad
用字符填充字符串左侧到指定长度
lpad('Hi',10,'-')
--------Hi
rpad
用字符填充字符串右侧到指定长度
rpad('Hi',10,'-')
Hi--------
trim
在一个字符串中去除另一个字符串
trim('S' FROM 'SSMITH')
MITH
replace
用一个字符串替换另一个字符串中的子字符串
replace('ABC', 'B', 'D')
ADC
四、日期型函数
1、 Oracle使用内部数字格式来保存时间和日期,包括世纪、年、月、日、小时、分、秒。缺省日期格式为DD-MON-YY,如“08-05月-03”代表2003年5月8日。
2、SYSDATE是返回 系统日期和时间的虚列函数。
函 数
功 能
实 例
结 果
months_between
返回两个日期间的月份
months_between ('04-11 月-05','11-1 月
-01')
57.7741935
add_months
返回把月份数加到日期上的新日期
add_months('06-2 月-03',1)
add_months('06-2 月-03',-1)
06-3 月-03
06-1 月-03
next_day
返回指定日期后的星期对应的新日期
next_day('06-2 月-03','星期一')
10-2 月-03
last_day
返回指定日期所在的月的最后一天
last_day('06-2 月-03')
28-2月-03
round
按指定格式对日期进行四舍五入
round(to_date('13-2 月-03'),'YEAR')
round(to_date('13-2 月-03'),'MONTH')
round(to_date('13-2 月-03'),'DAY')
01-1 月-03
01-2 月-03
16-2 月-03