Oracle学习笔记(6)——函数
- 函数的作用
- 方便数据的统计
- 处理查询结果
- 函数的分类
- Oracle内置的系统函数
- 数值函数
- 四舍五入
- 数值函数
- Oracle内置的系统函数
1、n:表示要进行四舍五入的值
2、m:表示保留小数点后几位或前几位
3、省略m : 0
4、m > 0:小数点后m位
5、m < 0:小数点前m位
样例:select round(23.4),round(23.45,1),round(23.45,-1) from dual;
- 取整函数
取最大值:CEIL(n)
取最小值:FLOOR(n)
样例:select ceil(23.45),floor(23.45) from dual;
- 经常使用计算
select abs(23.45),abs(-23),abs(0) from dual;
2、取余数:MOD(m,n) 假设m和n中有一个值为null值。则结果返回null值
select mod(5,2) from dual;
select mod(5,null) from dual;
3、POWER(m,n):表示返回m的n次幂
select power(2,3),power(null,2) from dual;
4、求平方根:SQRT(m)
select sqrt(16) from dual;
- 三角函数
2、余弦:COS(n)、反余弦:ACOS(n) n表示弧度
3、正切:TAN(n)、反正切:ATAN(n) n表示弧度
select sin(3.124) from dual;
- 字符函数
- 大写和小写转换函数
LOWER(char):转小写
INITCAP(char):首字母转大写
样例: select upper('abde'),lower('ADe'),initcap('asd') from dual;
- 获取子字符串函数
说明:char:源字符串,m:取子串的開始位置,n:截取子串的位数
n能够省略,当n省略时表示从m的位置截取到字符串的末尾
m为0,表示从字符串的首字母開始截取
m为负数,表示从字符串的尾部開始截取
select substr('abcde',2,3),substr("abcde",2),substr('abcde',-2,1) from dual;
- 获取字符串长度函数
select length('acd ') from dual;
- 字符串连接函数
select concat('ab','cd') from dual;
select 'ab' || 'cd' from dual;
- 去除子串函数
select trim('a' from 'abcde') from dual;
2、LTRIM(c1[,c2]):
select ltrim('ababaa','a') from dual;
3、RTRIM(c1[,c3]):
select rtrim('ababaa','a') from dual;
4、TRIM(c1):取除首尾的空格
- 替除函数
样例:select replace('abced','a','A') from dual;
select replace('abced','a') from dual;
select replace('abced','ab','A') from dual;
- 日期函数
- 系统时间
- SYSDATE 默认格式:DD-MON-RR
- 系统时间
- 日期操作
- ADD_MONTHS(date,i):返回在指定日期上加入的月份。
i能够是不论什么整数。假设i的小数,会自己主动截取整数。
- ADD_MONTHS(date,i):返回在指定日期上加入的月份。
select add_months(sysdate,3),add_months(sysdate,-3) from dual;
- NEXT_DAY(date,char):假设char的值是'星期一',则返回date指定日期的下周一是那天
- LAST_DAY(date):返回某一月的最后一天的日期
- MONTHS_BETWEEN(date1,date2):表示两个日期之间相隔的月份
select months_between('20_5月_15','10_1月_15') from dual;
- EXTRACT(date FROM datetime):
select extract(year from sysdate) from dual;
select extract(month from sysdate) from dual;
select extract(date from sysdate) from dual;
select extract(hour from timestamp '2015-10-1 17:25:14') from dual;
- 转换函数
- 日期转换成字符的函数
參数说明:
date:将要转换的日期
fmt:转换的格式
params:日期的语言。通常不写
- 默认格式:DD-MON-RR
- YY YYYY YEAR
- MM MONTH
- DD DAY
- HH24 HH12
- MI SS
样例:select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual;
select to_char(sysdate,'YYYY-MM-DD HH12:MI:SS') from dual;
- 字符转换成日期的函数
样例:select to_date('2015-05-22','YYYY-MM-DD') from dual;
- 数字转换成字符的函数
9:显示数字并忽略前面的0
0:显示数字。位数不足。用0补齐
.或D:显示小数点
,或G:显示千位符
$:美元符号
S:加正负号(前后都能够,不能同一时候加上)
select to_char(12345.678,'$99,999.999') from dual;
select to_char(12345.678,'$99,999,999') from dual;
select to_char(12345.678,'S99,999.999') from dual;
- 字符转换成数字的函数
fmt是转换的格式。能够省略
select to_number('$1,000','$9999') from dual;
- 自己定义的函数(临时不学)
- 在查询中使用函数
- 在查询中使用字符函数
select substr(cardid,7,8) from users;
2、将部门号01所有替换成'信息技术'
select replace(deptno,'01','信息技术') from users;
3、将员工信息表中的年龄字段与10取余数
select mod(age,10) from users;
- 在查询中使用日期函数
select extract(year from regdate) from users;
2、查询出5月份入职的员工信息
select * from users where extract(month from regdate)=5;