排序 order by asc/desc
升序:asc
降序:desc
##排序 order by
##升序
##(1)查询所有的学生信息,根据年龄进行升序排序
select * from stu order by age asc;
##降序
##(2)查询所有的学生信息,根据年龄进行降序排列
select * from stu order by age desc;
##(2)查询所有的学生信息,根据名字进行升序排列
select * from stu order by sname asc;
##(3)查询所有员工信息,根据工资进行排序,如果工资相同按照员工号升序
select * from emp order by sal desc,empno asc;
聚合函数
Mysql 系统ᨀ供了很多的函数
Count:统计个数,次数,null 不统计
Max:最大值
Min:最小值
Sum:求和
Avg:平均值
Round:四舍五入
有使用聚合函数的时候,一般都会给别名
count 函数
sum 求和,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)) money from emp;
##(3)计算员工的平均工资
select avg(sal) ,avg(comm) from emp;
+-------------+------------+
| avg(sal) | avg(comm) |
+-------------+------------+
| 2073.214286 | 550.000000 |
+-------------+------------+
#(4)平均工资,保留 2 位小数
select round(avg(sal),0) ,avg(comm) from emp;
max 和 min
##max 最大值和 min 最小值
##查询员工表中,工资最高的、最低的
select max(sal) max_sal,min(sal) min_sal from emp;
分段函数 case
##员工表中,根据薪资不一样,给不一样的评论
>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;
字符串截取
Left(A,4)从左边开始截取 4 个字符
Right(A,4) 从右边开始截取 4 个字符
我 爱 你
1987-04-19 -》1987
select right('1987-04-19',4)
###(1)获取员工的入职年份
select ename,hiredate,left(hiredate,4) from emp;
###(2)获取员工的入职工龄
select ename,hiredate,2021 - left(hiredate,4) from emp;