标题MySQL系统提供了很多的函数
Count:统计个数、次数,null不统计
Max:最大值
Min:最小值
Sum:求和
Avg:平均值
9.6.1 Count函数
(1)查询emp表中记录数
count(*):不会忽略null值
select count(*)from emp;
(2)统计emp表中,有提成的人数
count(具体字段),null的值会被忽略
select count(comm) from emp;
(3)统计工资大于2500员工的人数
select count(*)from emp where sal>2500;
9.6.2sum avg round
#sum avg round
#(1)查询所有员工工资总和
select sum(sal) from emp;
#(2)查询所有员工工资总和,提成总和
select sum(sal),sum(comm) from emp;
#(3)查询所有员工工资总和,提成总和,薪资
select sum(sal),sum(comm),sum(sal+ifnull(comm,0)) from emp;
#(4)查询员工的平均工资
select avg(sal),avg(comm) from emp;
+-------------+------------+
| avg(sal) | avg(comm) |
+-------------+------------+
| 2073.214286 | 550.000000 |
+-------------+------------+
#(5)平均工资 保留2位小数
select round(avg(sal),2),avg(comm) from emp;
9.6.3max和min
##max最大值和min最小值
#查询员工表中,工资最高的 最低的
select max(sal),min(sal) from emp;
9.6.4分段函数
##分段函数c a s e
##员工表中,根据薪资不一样 给不一样的评论
>4000,NB666
>3000,NB66
>2000,NB6
<2000,ZZ
select
sal,case
when sal >4000 then 'NB666'
when sal >3000 then 'NB66'
when sal >2000 then 'NB6'
else 'ZZ'
end as pj
from emp;
##需求:根据入职时间不同打不同星
入职时间>21年,3星
入职时间>20年,2星
<20年,1星
9.6.5字符串截取
Left(A,4)从左边开始截取4个字符
Right(A,4)从右边开始截取4个字符
我 爱 你
##截取
1987-04-19 ->1987
select left ('1987-04-19',4)
##(1)获取员工是入职年份
select ename,hiredate,left(hiredate,4) from emp;
#(2)获取员工的入职工龄
select ename,hiredate,2021 - left(hiredate,4) from emp;