Oracle学习第六天

时间:2022-04-26 06:45:08

函数

1.函数的作用
方便数据的统计
处理查询结果
2.函数分类
数值函数
字符函数
日期函数
转换函数
3.数值函数
①四舍五入
round(n[,m])(省略m就是0,m>0:小数点后m位,m<0:小数点前m位)
n:表示要四舍五入的值
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;
③常用计算
abs(n);绝对值
select abs(1),abs(-1),abs(0) from dual;
mod(m,n);取余  ==>m/n(如果m和n中有一个值为null值,则结果返回null值)
select mod(5,2),mod(5,null) from dual;
power(m,n):返回m的n次幂 2的3次方(如果m和n中有一个值为null值,则结果返回null值)
select power(2,3),power(null,2) from dual;
sqrt(n):平方根 
select sqrt(16) from dual;
④三角函数
sin(n):正弦
asin(n):反正弦
cos(n):余弦
acos(n):反余弦
tan(n):正切
atan(n):反正切


4.字符函数
①大小写转换函数
upper(char):转换大写
lower(char):转换小写
initcap(char):将首字母转换为大写
②获取子字符串函数
substr(char,[m[,n]]):截取字符串(m:字符串开始位置,n:截取子串的位数,m为负数时从尾部截取)
③获取字符串长度函数
length(char)
④字符串连接函数
concat(char1,char2)与||操作符作用一样
⑤去除子串函数
trim(c2 from c1):从c1中去除c2字符(如果括号只有一个字符就代表去除两边的空格)
ltrim(c1[,c2]):从c1中去除第一个c2字符(如果括号只有一个字符就代表去除左边的空格)
rtrim(c1[,c2]):从c1尾部去除第一个c2字符(如果括号只有一个字符就代表去除右边的空格)
注:看第首尾第一个字符
⑥替换函数
replace(char,s_string[,r_string])(省略r_string代表用空格替换)
select replace('abcde','ab','A') from dual;
5.日期函数
①系统时间
sysdate 默认格式DD-MON-RR
select sysdate from dual;
②日期操作
add_months(date,i):返回在指定日期上添加的月份(如果i是小数,则截取整数部分,如果i是负数则是减去日期)
select add_months(sysdate,3) from dual;
next_day(date,char):从当前日期开始得到到未来  星期数  的日期,如果char的值是“星期一”,则返回date指定日期的下周一是哪天。
last_day(date):返回最后一天的日期
months_between(date1,date2):表示两个日期间隔的月份
extract(date from datetime):从datetime中返回date的类型日期
select extract(month from sysdate) from dual;
6.转换函数
①日期转换成字符的函数
to_char(date[,fmt[,params]])(date:将要转换的日期,fmt:转换的格式,params:日期的语言)
fmt可以取值有
YY YYYY YEAR MM MONTH DD DAY HH24 HH12 MI(分钟) SS(秒)
②字符转换成日期的函数
to_date(char[,fmt[,params]])(date:将要转换的日期,fmt:转换的格式,params:日期的语言)
③数字转换成字符的函数
to_char(number[,fmt])
fmt取值
9:显示数字并忽略前面的0
0:显示数字,位数不足,用0补齐
.或D:显示小数点
,或G:显示千位符
$:美元符号
S:加正负号(前后都可以但是不能同时一起加)
select to_char(123456.654,'$99,999.999') from dual;
④字符转换成数字的函数
to_number(char[,fmt])

7.查询中使用函数
①在查询中使用字符函数

②在查询中使用数值函数

③在查询中使用日期函数