数据处理函数
又被称为单行处理函数
特点:一个输入对应一个输出,相应的多行处理函数:多个输入(处理多条记录)一个输出
常见函数:
-
lower 转换为小写 upper转换为大写
-
SELECT LOWER(ename) FROM emp; //在字段上直接使用 SELECT UPPER(ename) FROM emp; //处理 n 条记录依旧是 n 条输出
-
-
substr 取子串
-
格式:SUBSTR ( 被截取的字符串 FROM 起始下标 FOR 截取长度 ) 字符串下标从1开始
-
或 SUBSTR ( 被截取的字符串 , 起始下标 , 截取长度 )
-
SELECT SUBSTR(ename FROM 1 FOR 2) AS ename FROM emp;
-
查询员工名字第一个字母是 A 的员工信息
-
SELECT ename FROM emp WHERE substr(ename , 1 , 1) = 'A';
-
-
-
concat 字符串拼接
-
格式:CONCAT ( 'String1' , 'String2' ); => 结果:String1String2
-
SELECT CONCAT(empno,ename) FROM emp;
-
查询员工姓名,结果需要首字母大写
-
SELECT CONCAT( UPPER(SUBSTR(ename,1,1)) , SUBSTR(ename,2,LENTH(ename)-1)) AS result //取首字符进行大写,取剩余字符,拼接 FROM emp;
-
-
-
trim 去除空格
-
SELECT * FROM emp WHERE ename = TRIM('传入的数据')
-
-
round 四舍五入
- 格式:ROUND ( 数据,精度 )
- 精度 1 = 一位小数,精度 2 = 两位小数,精度0 = 整数,精度-1 = 十位,精度-2 = 百位
-
rand 生成随机数
- 格式:RAND() -- 作为一个数
-
ifnull 空处理函数
-
在所有数据库当中,只要有null参与数学运算,运算结果为null -- 100+null = null
-
因此在做大量数据运算时,可能有null参与运算返回结果为null
-
格式:ifnull ( 数据,替代值x ) -- 如果数据为 null 在运算时用 x 代替
-
查询所有员工年工资 = (月工资 + 补助)* 12
-
SELECT ename, (ifnull(sal, 0) + ifnull(comm, 0)) * 12 AS yearsal FROM emp;
-
-
-
case..when..then..when..then..else..end 分条件处理
-
格式:case -> 判断对象,when -> 条件,then -> 返回值,else -> 无条件返回值,end结束
-
查询结果,当员工为MANAGER时,工资上调10%,当员工为SALESMAN时,工资上调50%
(不修改数据库)
-
SELECT ename,job, (CASE job WHEN 'MANAGER' THEN sal*1.1 WHEN 'SALESMAN' THEN sal*1.5 ELSE sal END) AS newsal FROM emp;
-
-