Oracle课程档案,第二天

时间:2021-04-02 14:58:12

salary:工资

order by:排序

desc:降序

hire:雇佣

单行函数

一周有七天

一月不一定只有30天

trunc:截取

dual:空表

last:最后

month:月份

round:四舍五入法

substr:字符串截取

length:字符串长度

replace:字符串内容替换

upper:把小写字母转换成大写字母

lower:把大写字符转换成小写字母

initcap:把单词转换成首字母大写的形式

日期 - 日期 = 数字 (表示天数)

日期 - 数字 = 日期

日期 + 数字 = 日期

四舍五入的函数:★★

select round(123.45,1)from dual 123.5

+1:四舍五入取小数点后一位

select round(123.45,-1)from dual 120

-1:四舍五入取十位

select round(123.45,0)from dual 123

0:四舍五入取整数

trunc:截取

截断小数位函数 ---- trunc(),如:
a)SELECT trunc(789.536) FROM dual; 默认只保留整数位,并且小数位不做四舍五入运算;
b)SELECT trunc(789.536, 2) FROM dual; 保留两位小数,小数位不做四舍五入运算;
c)SELECT trunc(789.536, -2) FROM dual; 在整数位从低位向高位舍弃,位数上的数字大于5同样被舍弃,做0看待

日期:

B)函数:
a)months_between() ---- 求出指定范围的月数,如:SELECT empno, ename, round(months_between(sysdate, hiredate)) FROM emp ;
b)add_months() --- 在指定的日期上加上指定的月数,如:SELECT add_months(sysdate, 3) FROM dual;
c)next_day() ---- 求取和本周星期数相同的下周的星期数是几号,如:SELECT last_day(sysdate, '星期日') FROM dual;
d)last_day() --- 求取本月的最后一天是几号,如:SELECT last_day(sysdate) FROM dual;

char:字符串类型

转换函数:从一种数据类型转换成另一种数据类型;
A)日期通配符的一点介绍:
1)年:y,年是四位数字,故使用 yyyy 表示年;
2)月:m,月是两位数字,故使用 mm 表示月;
3)日:d,日是两位数字,故使用 dd 表示月;

B)函数:
1)to_char() ---- 转换成字符串,如:
SELECT empno, ename, to_char(hiredate, 'yyyy') year , to_char(hiredate, 'mm') month , to_char(hiredate, 'dd') day FROM emp; 此实例完成日期的拆分工作,即分别取出年、月、日,用于格式化使用。
SELECT empno, ename, to_char(hiredate, 'yyyy-mm-dd') FROM emp; 完成日期的本地化;
SELECT empno, ename, to_char(hiredate, 'yyyy-mm-dd') FROM emp; 去掉前导 0,完成日期的本地化。
SELECT empno, ename, to_char(sal, '99,999') FROM emp; 工资显示时每个三位加一个逗号,占位符只能使用数字 9 。
SELECT empno, ename, to_char(sal, '$99,999') FROM emp; 以美元的形式显示工资。
SELECT empno, ename, to_char(sal, 'L99,999') FROM emp; 本地化工资格式,“L” 或 “l” 为 "local“ 的缩写,以为本地化。
2)to_number() --- 转换成数字,如:
SELECT TO_NUMBER('123') + TO_NUMBER('789') FROM dual; 把字符串“123”和字符串“789”转换成数字后进行四则运算。
3)to_date() --- 转换成日期。
SELECT TO_DATE('2011-01-10', 'yyyy-mm-dd') FROM dual; 把字符串日期格式转换成 Oracle 内置的日期格式。
5、通用函数:NVL函数、DECODE函数。
1)NVL() 函数用于把一个变化的值设置另一个默认值,常用语四则计算时把空值 NULL 设置为 0 ,示例如下:
SELECT empno, ename, NVL(comm, 0), (sal + NVL(comm, 0)) * 12 income FROM emp;
2)DECODE() 函数类似于 if...else if...else 语句,用于依次逐个匹配数据并计算结构,如:
SELECT DECODE(1, 1, '内容为 1', 2, '内容为 2', 3, '内容为 3') FROM dual;
SELECT empno 员工编号, ename 员工姓名, hiredate 聘用日期, DECODE(job, 'CLERK', '业务员', 'SALESMAN', '销售员', 'MANGER', '经理', 'PRESIDENT', '总裁') 职位 FROM emp;

NVL:替换值