Oracle字符串操作 、 Oracle数值操作 、 Oracle日期操作 、 空值操作
来源:互联网 发布:python执行exe程序 编辑:程序博客网 时间:2024/06/05 19:24
DQL数据查询语言查询语句基本由SELECT子句由FROM子句构成.SELECT子句指定要查询的字段. FROM指定数据来源.SELECT子句中可以出现表中的字段,函数或表达式.SELECT * FROM empSELECT ename,job,sal,deptnoFROM empSELECT ename,sal*12FROM empWHERE子句,可以添加过滤条件,用在查询中可以将只满足WHERE条件的记录查询出来查看工资大于2000的员工?SELECT ename,salFROM empWHERE sal>2000不等于判断用"<>"SELECT ename,job,sal,deptnoFROM empWHERE deptno<>20字符串函数:CONCAT(c1,c2)连接字符串SELECT CONCAT(ename,sal)FROM empSELECT CONCAT(CONCAT(ename,':'),sal)FROM emp"||"可以同时连接多个字符串SELECT ename||':'||salFROM empLENGTH(ch)查看字符串长度SELECT ename,LENGTH(ename)FROM empSELECT ename,salFROM empWHERE LENGTH(ename)>4UPPER,LOWER,INITCAP转换大写,小写,首字母大写dual:伪表。当查询的内容不是任何表中的内容时使用。SELECT UPPER('helloworld'), LOWER('HELLOWORLD'), INITCAP('HELLO WORLD')FROM dualSELECT ename,sal,deptnoFROM empWHERE ename=UPPER('scott')TRIM,LTRIM,RTRIM去除字符串两边,左边,右边的指定内容SELECT TRIM('e' FROM 'eeeeliteee')FROM dualSELECT LTRIM('esfsffefesliteeee','efs')FROM dualSELECT RTRIM('eeeeliteeee','e')FROM dualLPAD,RPAD补位函数SELECT RPAD(ename,10,' ')FROM empSUBSTR(ch,m,n)截取字符串,从第m个字符开始截取n个字符n不指定则是截取到末尾,n超过实际可以截取的个数也是截取到末尾。m若是负数,则是从倒数位置开始截取。数据库下标都是从1开始SELECT SUBSTR('thinking in java',-7,2)FROM dualINSTR(ch1,ch2,m,n)查看ch2在ch1中的位置m表示从哪里开始查找n表示第几次出现m,n不写默认都是1SELECT INSTR('thinking in java','in',4,2)FROM dual数字函数:ROUND(n[, m])四舍五入SELECT ROUND(45.678, 2) FROM DUALSELECT ROUND(45.678, 0) FROM DUALSELECT ROUND(55.678, -2) FROM DUALTRUNC(n[, m])截取字符串SELECT TRUNC(45.678, 2) FROM DUALSELECT TRUNC(45.678, 0) FROM DUALSELECT TRUNC(55.678, -1) FROM DUALMOD(m,n)求余SELECT ename,MOD(sal,1000)FROM empCEIL(n)和FLOOR(n)向上取整和向下取整SELECT CEIL(45.678) FROM DUAL SELECT FLOOR(45.678) FROM DUAL日期类型相关的关键字SYSDATE:对应一个内置的函数,返回一个DATE类型的当前系统时间。SYSTIMESTAMP:返回一个时间戳类型的当前系统时间。SELECT SYSDATE FROM dualSELECT SYSTIMESTAMP FROM dualTO_DATE()函数可以将一个字符串按照给定的日期格式转换为DATESELECT TO_DATE('1992-08-03','YYYY-MM-DD')FROM dual日期可以进行计算对一个日期加减一个数字,结果相当于加减了天。两个日期之间相减差为相差的天数。日期可以比大小,越晚的越大。SELECT SYSDATE+1FROM dual查看每个员工入职到今天共多少天?SELECT ename,SYSDATE-hiredateFROM empSELECT SYSDATE-TO_DATE('1992-08-03','YYYY-MM-DD')FROM dualTO_CHAR()将日期按照指定格式转换为字符串SELECT ename,TO_CHAR(hiredate,'YYYY-MM-DD')FROM empSELECT ename,TO_CHAR(hiredate,'YYYY"年"MM"月"DD"日"')FROM empYY与RR在TO_DATE函数中将2位数字解析为DATE时是有所区别的:YY:不关注世纪RR:自行判定世纪SELECT TO_CHAR( TO_DATE('49-05-01','RR-MM-DD'), 'YYYY-MM-DD' )FROM dualLAST_DAY(date)返回给定日期所在月的月底日期SELECT LAST_DAY(SYSDATE)FROM dualADD_MONTHS(date,i)对指定日期加指定的月,若i是负数则是减去。查看每个员工入职20周年纪念日SELECT ename,ADD_MONTHS(hiredate,12*20)FROM empMONTHS_BETWEEN(date1,date2)计算两个日期之间相差的月查看每个员工入职至今共多少个月?SELECT ename,TRUNC(MONTHS_BETWEEN(SYSDATE,hiredate))FROM empNEXT_DAY(date,i)返回给定日期第二天开始一周内的指定周几的日期。SELECT NEXT_DAY(SYSDATE,3)FROM dualLEAST、GREATEST求最小值与最大值SELECT LEAST(SYSDATE, TO_DATE('2008-08-08', 'YYYY-MM-DD') )FROM dualEXTRACT函数获取给定日期指定时间分量对应的值SELECT EXTRACT(YEAR FROM SYSDATE)FROM dual查看1980年入职的员工?SELECT ename,hiredateFROM empWHERE EXTRACT(YEAR FROM hiredate)=1981空值操作CREATE TABLE student( id NUMBER(4), name CHAR(20), gender CHAR(1));INSERT INTO student VALUES(1000, '李莫愁', 'F');INSERT INTO student VALUES(1001, '林平之', NULL);INSERT INTO student(id, name) VALUES(1002, '张无忌'); SELECT * FROM student更新成NULLUPDATE studentSET gender=NULLWHERE id=1000在判断一个字段值是否为NULL要使用IS NULL 或 IS NOT NULLDELETE FROM studentWHERE gender IS NULLNULL参与运算的注意事项:1:NULL与字符串连接等于什么也没做2:NULL与数字运算结果还是NULLSELECT ename,sal,comm,sal+commFROM emp空值函数NVL(arg1,arg2)若第一个参数为NULL函数返回第二个参数,否则直接返回第一个参数SELECT ename,sal,comm, sal+NVL(comm,0)FROM emp查看每个员工的绩效情况,即:有绩效的显示为"有绩效",为NULL的则显示为"没有绩效"NVL2(arg1,arg2,arg3)若arg1不为NULL,函数返回arg2若arg1为NULL,函数返回arg3SELECT ename,comm, NVL2(comm,'有绩效','没有绩效')FROM empSELECT ename,sal,comm, NVL2(comm,sal+comm,sal)FROM emp
微信公众号:javafirst
阅读全文
0 0
- ORACLE Unit02 Oracle字符串操作 、 Oracle数值操作 、 Oracle日期操作 、 空值操作
- Oracle字符串操作 、 Oracle数值操作 、 Oracle日期操作 、 空值操作
- Oracle字符串操作 、 Oracle数值操作 、 Oracle日期操作 、 空值操作
- Oracle字符串操作 、 Oracle数值操作 、 Oracle日期操作 、 空值操作
- Oracle数据库对表数据的基本操作和Oracle字符串、数值、日期、空值操作及它们相对应的函数操作
- oracle操作记录-字符串和数值函数
- Oracle时间日期操作
- Oracle时间日期操作
- oracle 日期操作
- ORACLE 时间日期操作
- ORACLE 时间日期操作
- ORACLE 时间日期操作
- Oracle日期操作
- Oracle时间日期操作
- Oracle 操作日期类型
- Oracle时间日期操作
- Oracle时间日期操作
- Oracle时间日期操作
- 对于KMP算法的一点点理解(仅仅就是一点点)
- 通用栈(c实现)
- 【openjudge】符号三角形
- vue组件化挖矿之旅(一):vue-cli 项目的安装
- extjs添加页面时间获取不到
- Oracle字符串操作 、 Oracle数值操作 、 Oracle日期操作 、 空值操作
- 面对ICO乱象,这里有一份老猫的4000字投资指南
- shiro表单的验证 自定义FormAuthenticationFilter
- iOS 模拟器安装APP
- hdu2151 Worm DP
- 各类距离和python实现
- linux关机重启命令
- HTML5中获取地理位置
- Junit4单元测试