03_Oracle_标量函数和算术运算.ppt
标量函数和算术运算标量函数和算术运算Oracle基础单元目标单元目标记忆并熟练使用字符函数记忆并熟练使用数值函数记忆并熟练使用日期函数记忆并熟练使用通用函数记忆并熟练使用转换函数能够在SELECT和WHERE 子句中使用算术运算字符函数的使用字符函数的使用转换为大写字母SELECT UPPER(smith)FROM DUAL;转换为小写字母SELECT LOWER(SMITH)FROM DUAL;字符函数的使用字符函数的使用每个单词的首字母变成大写,其余字母小写SELECT INITCAP(hello World)FROM DUAL;使用INITCAP将雇员表中的姓名转换为开头字母大写 SELECT EMPNO,INITCAP(ENAME)FROM EMP;字符函数的使用字符函数的使用串连接(CONCAT):可以使用“|”进行串连接SELECT CONCAT(HELLO,WORLD)FROM DUAL;或 SELECT HELLO|WORLD FROM DUAL;说明:CONCAT 函数不如|使用灵活字符函数的使用字符函数的使用求子串(SUBSTR)SELECT SUBSTR(ename,1,3)FROM emp;截取子串时,从 0 截取和从 1截取的效果是一样的字符函数的使用字符函数的使用求长度(LENGTH)SELECT LENGTH(ename)FROM emp;字符函数的使用字符函数的使用串替换(REPLACE)SELECT REPLACE(HELLO WORLD,WOR,WEL)FROM dual;字符函数的使用字符函数的使用要求显示所有雇员的姓名和姓名的后三个字符SELECT ename,SUBSTR(ename,LENGTH(ename)-2)FROM emp;SELECT ename,SUBSTR(ename,-3)FROM emp;数值函数的使用数值函数的使用向下取下(FLOOR)SELECT FLOOR(11.9)FROM dual;数值函数的使用数值函数的使用四舍五入(Round)SELECT ROUND(789.536)FROM dual;数值函数的使用数值函数的使用四舍五入(Round):指定保留小数位数SELECT ROUND(789.536,2)FROM dual;数值函数的使用数值函数的使用四舍五入(Round):对整数四舍五入SELECT ROUND(789.536,-2)FROM dual;数值函数的使用数值函数的使用截断小数位(TRUNC)SELECT TRUNC(789.536)FROM dual;数值函数的使用数值函数的使用截断小数位(TRUNC):指定保留小数位SELECT TRUNC(789.536,2)FROM dual;数值函数的使用数值函数的使用截断小数位(TRUNC):对整数截断SELECT TRUNC(789.536,-2)FROM dual;数值函数的使用数值函数的使用取余数(MOD)SELECT MOD(10,3)FROM dual;日期函数日期函数运算规律日期+数字=日期日期-数字=日期日期-日期=数字(天数)日期函数日期函数查询当前日期SELECT sysdate FROM dual;显示10部门员工进入公司的星期数SELECT empno,ename,ROUND(sysdate-hiredate)/7)FROM empWHERE deptno=10;日期函数日期函数在指定日期上加上指定的月数之后的日期(ADD_MONTHS)SELECT ADD_MONTHS(sysdate,4)FROM dual;日期函数日期函数求出给定日期范围的月数(MONTHS_BETWEEN)SELECT EMPNO,ename,MONTHS_BETWEEN(sysdate,hiredate)FROM EMP;日期函数日期函数下一个给定的星期是那个日期(NEXT_DAY)SELECT NEXT_DAY(sysdate,星期一)FROM dual;日期函数日期函数求出给定日期所在月份的最后一天日期(LAST_DAY)SELECT LAST_DAY(sysdate)FROM dual;日期函数日期函数求给定日期的各日历字段(EXTRACT)SELECT EXTRACT(year FROM sysdate)FROM dual;转换函数转换函数转换成字符串(TO_CHAR)查询雇员号,姓名,以及入职的年份SELECT empno,ename,TO_CHAR(hiredate,yyyy)FROM emp;说明:yyyy 匹配年份,mm 匹配月份,dd 匹配日转换函数转换函数使用TO_CHAR设置日期的显示格式SELECT empno,ename,TO_CHAR(hiredate,yyyy-mm-dd)FROM emp;转换函数转换函数使用fm去掉前导 0SELECT empno,ename,TO_CHAR(hiredate,fmyyyy-mm-dd)FROM emp;转换函数转换函数通过TO_CHAR设置数值的格式SELECT empno,ename,TO_CHAR(sal,99,999)FROM emp;说明:9 代表 1 位数字转换函数转换函数显示金额SELECT empno,ename,TO_CHAR(sal,$99,999)FROM emp;说明:$代表美元,L代表本地转换函数转换函数转换成数字(TO_NUMBER)SELECT TO_NUMBER(123)+TO_NUMBER(123)FROM dual;转换函数转换函数转换成日期(TO_DATE)SELECT TO_DATE(2009-07-31,yyyy-mm-dd)FROM dual;算术运算算术运算查询每个员工的年收入SELECT empno,ename,(sal+comm)*12 FROM emp;问题:列名没有实际意义,能不能换个名字给列起别名给列起别名查询每个员工的年收入SELECT empno,ename,(sal+comm)*12 incomeFROM emp;问题:当空值和任何数据运算时,结果都为空值,怎么办通用函数通用函数查询每个员工的年收入SELECT empno,ename,(sal+NVL(comm,0)*12 incomeFROM emp;NVL(COMM,0)当comm的值为null时,用 0 替换知识点总结知识点总结掌握字符函数的使用掌握数值函数的使用掌握日期函数的使用掌握通用函数的使用掌握转换函数的使用掌握在SELECT和WHERE 子句中使用算术运算