四.数据处理函数/单行处理函数
4.1单行处理函数的特点:一个输入对应一个输出
和单行处理函数相对应的是:多行处理函数
多行处理函数的特点:多个输入对应一个输出
4.2单行处理函数常见的有哪些?
(1) lower 转换大写
select
lower(ename) as ename
from
emp;
(2)upper 转换小写
select
upper(ename) as ename
from
emp;
(3) substr 取子串(substr(被截取的字符串,起始下标,截取的长度))
select
substr(ename,1,1) as ename
from
emp;
注意:起始下标从1开始,没有0
找出员工名字第一个字母是A的员工信息?
第一种方式:模糊查询
select
ename
from
emp
where
ename like 'A%';
第二种方式:substr函数
select
ename
from
emp
where
ename substr(ename,1,1) = 'A';
首字母大写?
select
concat(upper(substr(name,1,1)),substr(name,2,length(name) - 1)) as result
from
t_student;//函数可以嵌套
(4)length 取长度
select
length(ename) enamelength
from
emp;
(5)trim 去空格
select
*
from
emp
where
ename = trim(' KING');
(6)str_to_date 将字符串转换成日期
(7)data_format 格式化日期
(8)format 设置千分位
(9)round 四舍五入
select 字面量(如'abc')/字面值(如'100') from 表名;
select
round(1235.567) as result
from
emp;
select round(1235.567,1) as result from emp;//保留1位小数
select round(1235.567,2) as result from emp;//保留2位小数
select round(1235.567,0) as result from emp;//保留整数位
select round(1235.567,-1) as result from emp;//保留到十位
select round(1235.567,-2) as result from emp;//保留到百位
(10)rand() 随机函数
select round(rand()*100,0) from emp;//产生100以内的随机整数
(11)ifnull 空处理函数,可以将null转换成一个具体值
在所有数据库当中,只要有NULL参与的数学运算,最终结果就是NULL.
如
:select
ename,sal + comm as salcomm//comm为补助
from
emp;
为了避免这个现象,需要使用ifnull函数
ifnull函数用法:ifnull(数据,被当作哪个值)
如果"数据"为NULL的时候,把这个数据结构当作哪个值。
补助为NULL的时候,将补助当作0
select
ename,(sal + ifnull(comm,0)) * 12 as yearsal
from
emp;
(12)case…when…then…when…then…else…end
当员工的工作岗位是manager的时候,工资上调10%,当工作岗位是salesman的时候,工资上调50%,其他正常(注意:不修改数据库,只是将查询结果显示为工资上调)
select
ename,
sal as oldsal,
job,(case job when 'manager' then sal*1.1 when 'salesman' then sal*1.5 else sal end) as newsal
from
emp;