SQL基础--SQL字符串函数操作,数值操作,日期操作,空值操作
来源:互联网 发布:网站内容采集软件 编辑:程序博客网 时间:2024/05/20 18:48
如果遇到没有创建的表影响运行使用
->点我进入表的创建与数据插入
或者评价反馈
SELECT语句
用于查询表中数据
SELECT子句后面跟的是要查询的字段
可以包括表中的具体字段,函数或者表达式
FROM子句用来指定数据来源的表
WHERE子句用来添加过滤条件,这样做的结果
是只将满足条件的记录查询出来
查看emp表中的数据
SELECT ename,job
FROM emp_swm
SELECT 子句中使用表达式
查看每个员工的年薪? 乘以12
SELECT ename,sal*12
FROM emp_swm
字符串函数
CONCAT()函数,连接字符串
SELECT CONCAT(CONCAT(ename,’,’),sal)
FROM emp_swm
另外可以用 || 连接
SELECT ename ||’,’ || sal
FROM emp_swm
LENGTH函数,查看字符串长度
SELECT ename,LENGTH(ename)
FROM emp_swm
UPPER,LOWER,INITCAP 全大写,全小写,首字母大写
将字符串转换为全大写,全小写,首字母大写
对于INITCAP而言,可以使用空格隔开多个单词,
那么每个单词首字母都会大写SELECT UPPER(‘helloword’),
LOWER(‘HELLOwoRLD’),
INITCAP(‘helloWorlD’),
INITCAP(‘HELLOWORLD’)
FROM dual
伪表dual
当查询的内容不合任何表中的数据有关系时,可以使用伪装,
伪表只会查询出一条记录。
TRIM,LTRIM,RTRIM 去除当前字符串中两边的指定重复字符
去除当前字符串中两边的指定重复字符,
LTRIM仅去除左侧的,RTRIM去除右侧的
SELECT TRIM(‘e’ FROM ‘eeloleeee’)
FROM dual
SELECT LTRIM(‘esdseeeloleee’,’sed’)
FROM dual
LPAD,RPAD 补位函数
补空格可以实现左右对齐的效果
arg1,显示的数据,arg2,要显示的长度,arg3不够位数的话补充的字符
SELECT RPAD(sal,6,’ ‘)
FROM emp_swm
SUBSTR 截取字符串
数据库中的下标都是从1开始的
SELECT SUBSTR(‘thinking in java’,13,4)
FROM dual
第三个参数不指定则是截取到末尾,
指定长度若超过实际可以截图的内容也是截取到末尾
SELECT SUBSTR(‘thinking in java’,10,1000)
FROM dual
截取的位置可以是负数,若是则表示从倒数第几个字符开始截取
SELECT SUBSTR(‘thinking in java’,-4,4)
FROM dual
INSTR(char1,char2[,n,m])函数 查找char2在char1中的位置
查找char2在char1中的位置
n为从第几个字符开始检索
m为第几次出现
n,m不写则默认都是1
SELECT INSTR(‘thinking in java’,’in’,4,3)
FROM dual
数字函数
ROUND(n,m)四舍五入
n为你要计算的数,m默认为0,正数为小数点后几位,负数反之亦然
SELECT ROUND(55.678,-2)
FROM dual
SELECT ROUND(45.678,-2)
FROM dual
TRUNC 将数字直接截取下来变为0
SELECT TRUNC(45.678,2) FROM dual
SELECT TRUNC(45.678,1) FROM dual
SELECT TRUNC(45.678,-2) FROM dual
SELECT TRUNC(45.678,-1) FROM dual
MOD(n,m)求余数
m若为0则直接返回被除数
SELECT MOD(sal,1000) FROM emp_swm
CEIL,FLOOR 向上取整和向下取整
向上取整和向下取整
SELECT CEIL(45.678) FROM DUAL
SELECT FLOOR(45.678) FROM DUAL
日期类型
SYSDATE,SYSTIMESTAMP 返回一个当前系统时间的DATE类型值
SYSDATE对象数据库的一个内部函数,
该函数返回一个表示当前系统时间的DATE类型值
SYSTIMESTAMP返回的是一个表示当前系统时间的时间戳类型的值
SELECT SYSDATE FROM dual
SELECT SYSTIMESTAMP FROM dual
TO_DATE函数 日期转换函数
TO_DATE函数
可以将字符串按照给定的日期格式解析
为一个DATE类型的值
在日期格式字符串中凡不是英文,符号,数字的其他字符
都需要双引号括起来。
SELECT
TO_DATE(‘2008年08月08日 20:08:08’,
‘YYYY”年”MM”月”DD”日” HH24-MI-SS’)
FROM dual
日期的计算
日期可以与一个数字进行加减法,这相当于加减指定的天
两个日期可以进行减法,差为相差的天。
查看员工的入职时间?
SELECT ename,CONCAT(TRUNC(SYSDATE-hiredate,0),’天’)
FROM emp_swm
输入自己生日,查看到今天活了多少天了。
SELECT CONCAT(TRUNC(SYSDATE-TO_DATE(‘1996-03-15’,’YYYY-MM-DD’),0),’天’)
FROM dual
TO_CHAR() 可以将DATE按照给定的格式转换成字符串
SELECT TO_CHAR(SYSDATE,’YYYY-MM-DD HH24:MI:SS’)
FROM dual
SELECT TO_CHAR(
TO_DATE(‘49-08-10’,’RR-MM-DD’),
‘YYYY-MM-DD’
)FROM dual
LAST_DAY(date) 返回给定日期所在月的月底日期
返回给定日期所在月的月底日期,即所在月有多少天
查看当前月底?
SELECT LAST_DAY(SYSDATE)
FROM dual
ADD_MONTHS(date,i) 对给定日期加上指定的月
对给定日期加上指定的月,若i为负数则是减法
查看每个员工入职20周年的纪念日?
SELECT ename,ADD_MONTHS(hiredate,12*20)
FROM emp_swm
MONTHS_BETWEEN(date1,date2) 计算两个日期之间相差的月
计算两个日期之间相差的月,计算时根据date1-date2得到的
查看每个员工至今入职多少个月了?
SELECT ename,MONTHS_BETWEEN(SYSDATE,hiredate)
FROM emp_swm
NEXT_DAY(date,i) 返回给定日期的第二天开始一周之内的指定周几的日期
返回给定日期的第二天开始一周之内的指定周几的日期
i:1表示周日,2为周一
SELECT NEXT_DAY(SYSDATE,5)
FROM dual
LEAST(…),GREATEST(…) 求最小值和最大值
求最小值和最大值,除了日期外,常用的数字也可以比较大小,数量不限。
SELECT
LEAST(SYSDATE,TO_DATE(‘2017-08-05’,’YYYY-MM-DD’))
FROM dual
EXTRACT() 提取给定日期中指定时间分量的值
提取给定日期中指定时间分量的值
SELECT EXTRACT(YEAR FROM SYSDATE)
FROM dual
查看1980年入职的员工
SELECT ename,hiredate
FROM emp_swm WHERE EXTRACT(YEAR FROM hiredate)=1980
空值操作
插入NULL值
CREATE TABLE student_swm( id NUMBER(4), name CHAR(20), gender CHAR NOT NULL)INSERT INTO student_swm VALUES(1,'小李子','F');显式插入NULL值INSERT INTO student_swm VALUES(2,'小贵子',NULL);隐式插入NULL值INSERT INTO student_swm(id,name) VALUES(3,'小林子');SELECT * FROM student_swm
更新为NULL
UPDATE student_swm SET gender=NULL WHERE id=1;
判断字段的值是否为NULL
判断要使用IS NULL或IS NOT NULL
DELETE FROM student_swm
WHERE gender IS NULL
NULL值的运算操作
NULL与任何数字运算结果还为NULL
NULL与字符串拼接等于什么都没干
查看每个员工的收入:
SELECT ename,sal,comm,sal+comm
FROM emp_swm
空值函数
NVL(arg1,arg2) 根据arg1是否为NULL返回值
当arg1为NULL,函数返回arg2的值若不为NULL,则返回arg1本身所有该函数的作用是将NULL值替换为一个非NULL值
查看每个员工的收入:
SELECT ename,sal,comm,sal+NVL(comm,0)
FROM emp_swm
NVL2(arg1,arg2,arg3) 根据arg1是否为NULL返回arg2或arg3
当arg1不为NULL,则函数返回arg2.
当arg1为NULL,则函数返回arg3.
该函数是根据一个值是否为NULL
来返回两个不同结果。
SELECT ename,comm,NVL2(comm,’有奖金’,’没有奖金’)
FROM emp_swm
SELECT ename,sal,comm,NVL2(comm,sal+comm,sal)
FROM emp_swm
- SQL基础--SQL字符串函数操作,数值操作,日期操作,空值操作
- ORACLE Unit02 Oracle字符串操作 、 Oracle数值操作 、 Oracle日期操作 、 空值操作
- Oracle字符串操作 、 Oracle数值操作 、 Oracle日期操作 、 空值操作
- Oracle字符串操作 、 Oracle数值操作 、 Oracle日期操作 、 空值操作
- Oracle字符串操作 、 Oracle数值操作 、 Oracle日期操作 、 空值操作
- 数据库_Oracle字符串操作、数值操作、日期操作、空值操作
- sql字符串操作函数
- Sql字符串操作函数
- Oracle数据库对表数据的基本操作和Oracle字符串、数值、日期、空值操作及它们相对应的函数操作
- sql判断空操作
- SQL字符串操作函数大全
- SQL字符串操作函数小结
- sql操作日期
- SQL Server日期操作
- sql操作日期大全
- SQL日期操作语句
- SQL日期格式操作
- SQL Server日期操作
- Python实现对一个网络段扫描及端口扫描
- SVG动态创建image失败解决方案
- 解决魅族手机不能Toast提示的方法
- 有向图最小生成树
- 关于javax.sound.midi包的一些浅层探究(二)
- SQL基础--SQL字符串函数操作,数值操作,日期操作,空值操作
- Action动作类以及struts.xml配置解析
- 1121. Damn Single (25)
- 校园网欠费,连wifi直接上网的方法
- 1120. Friend Numbers (20)
- Linux中的sz和rz命令
- JSP系统开发学习之一用户登录系统(model1,纯jsp版)
- acm16进制的简单运算
- Fragment的生命周期