1、 单行函数的分类:1)字符函数
2)数值函数
3)日期函数
4)转换函数
5)通用函数
2、字符函数:主要指参数类型是字符型,不同函数返回值可能是字符型或数值型。
3、字符函数的分类:大小写转换函数和字符处理函数
4、大小写转换函数:使用upper(小写转换大写)、lower(大写转换小写)、initcap(单词首字母)关键字
例子:select empno,ename,deptno from emp where ename=upper('allen')
(显示ALLEN的员工编号、部门、姓名)
5、字符处理函数:
1)concat连接两个值,等同于||;
例子:concat(‘ab’,’cd’);
返回abcd
2)SUBSTR(string,start,count)
取string字符串,从start开始,取count个
如果count省略,则取后面所有
例子:Substr(‘string’,1,3)
返回str
3)LENGTH 取字符的长度
例子:LENGTH(‘string’)
返回结果是6
4)Instr(s1,s2,x,y)
返回S1中,字符串S2从x开始,第y次出现的位置,x、y默认为1
例子:Instr(‘string’,’r’)
返回结果为3
5)lpad(s1,n1,s2)
返回s1被s2从左面填充到n1之后的字符串
例子:Ipad(sal,10,*)
返回结果:******5000
6)rpad(s1,n1,s2)
返回S1被S2从右面填充到N1之后的字符串
例子:Rpad(sal,10,*)
返回结果:5000******
7)trim:去除字符串头部或尾部的字符
例子:Trim(‘s’ from ‘ssmith’)
返回结果:mith
8)replace(s1,s2,s3):把s1中的s2用s3替换
例子:Repalce(abc,b,d)
返回结果:adc
6、数值函数:
1)ROUND(n1[,n2]) 返回四舍五入小数点右边n2位后n1的值,n2缺省值为0,如果n2为负数就舍入到小数点左边相应的位上
例子:ROUND(58.5743,2)
返回:58.57
2)TRUNC(n1[,n2] 返回截尾到n2位小数的n1的值,n2缺省设置为0,当n2为缺省设置时会将n1截尾为整数,如果n2为负值,就截尾在小数点左边相应的位上
例子:TRUNC(578.546,1)
返回:578.5
3)MOD(n1,n2) 返回n1除n2的余数,如果n2=0则返回n1的值
例子:MOD(9,3),返回:3
7、dual 虚数表:
1) Oracle中的dual表是一个单行单列的虚拟表。
2) Dual表是oracle与数据字典一起自动创建的一个表,这个表只有1列:DUMMY,数据类型为VERCHAR2(1),dual表中只有一个数据’X’, Oracle有内部逻辑保证dual表中永远只有一条数据。
3)Dual表主要用来选择系统变量或求一个表达式的值。
8、日期函数:
1)Sysdate 当前日期和时间
例子:Select sysdate from dual;
2)Add_months(d,n) 当前日期d后推n个月
用于从一个日期值增加或减少一些月份
例子:当前日期后两个月:
Select add_months(sysdate,2) from dual;
3)dbtimezone()返回时区
例子:select dbtimezone from dual;
4)round[舍入到最接近的日期]
(day:舍入到最接近的星期日)
例子:select sysdate S1,
round(sysdate) S2 ,
round(sysdate,'year') YEAR,
round(sysdate,'month') MONTH ,
round(sysdate,'day') DAY fromdual
5)to_date,to_char日期和字符转换函数用法
例子:select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; --日期转化为字符串
将字符串转换为日期类型
例子:select to_date('2013-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from dual ;--字符串转化为日期
9、转换函数:转换函数将指定字符从一种类型转换为另一种,通常这类函数遵循如下惯例:函数名称后面跟着待转换类型以及输出类型。
1)TO_CHAR(将日期或数据转换为char数据类型)
Ⅰ:用于日期型
例子:select TO_CHAR(Sysdate, 'dd month yyyy') from dual(查询当前时间,以 xx xx月 xxxx的格式)
Ⅱ:用于数值型
例子:select TO_CHAR(28.000, '$99.999') from dual(在前面的数上加上美元符 号,28.000, '$99.999'两者必须位数相同)
其他例子:to_char(1210.73, '9999.9') 返回 '1210.7'
to_char(1210.73, '9,999.99') 返回 '1,210.73'
to_char(21, '000099') 返回 '000021'
to_char(852,'xxxx') 返回' 354'
2)TO_NUMBER(将一个字符串转换为数值型数据,要转换的char数据必须是由数字组成的)
例子:select TO_NUMBER('58') from dual(返回:58)
3)TO_DATE(将一个字符串转换为数值型数据,要转换的char数据必须是时间格式的)
例子:select to_date('02 10月 2016') from dual(返回:2016/10/2)
10、通用函数:与空值(NULL)相关的一些函数,完成对空值(NULL)的一些操作
例子:nvl(expr1,expr2)
如果 expr1 是 null 值,则 nvl 函数返回 expr2 ,否则就返回 expr1 。