DQL

去除重复数据(distinct)
#(1)查询员工的所有部门
select distinct deptno from emp;
9.5.2 ifnull
##(2)查询员工的薪资(工资+奖金)
##问题:任何数据+ null ->1800
ifnull(A,B):如果A是null,使用B的值,如果A不是null,就是使用A
select
sal,comm,sal + ifnull(comm,0)
from
emp;
9.5.3别名 as
select
sal,comm,sal + ifnull(comm,0) as money
from
emp;
##as 关键字可以省略
select
ename name,sal,comm,sal+ifnull(comm,0) as money
from
emp;
9.5.4排序
##排序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;

9.6 聚合函数
MySQL 系统提供了很多的函数
Count:统计个数,次数,null不统计
Max:最大值
Min:最小值
Sum:求和
Avg:平均值
Round:四舍五入
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;

(4)薪资(工资+奖金)大于2500的员工的人数。
select count(*)from emp where (sal+infull(comm,0))>2500;

(5)查询有提成的人数、有上一级领导的人数。
select count(comm),count(mgr) from emp;

9.6.2 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;
9.6.3 max 和 min
2021
##max 最大值和 min 最小值
##查询员工表中,工资最高的、最低的
select max(sal) max_sal,min(sal) min_sal from emp;
9.6.4 分段函数 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;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值