MYSQL学习之----条件函数

升序,降序

按照工资升序,找出员工名和薪资
在这里插入图片描述
在这里插入图片描述
按照工资的降序排列,当工资相同时再按照名字的升序排列
在这里插入图片描述
此外,还可以根据表的指定列进行排序,但一般不使用,因为如果当表的结构发生改变时,排序的字段也会发生改变
在这里插入图片描述
找出工作岗位是SALESMAN的员工,并且要求按照薪水降序排列
在这里插入图片描述
SQL语句中的执行顺序
在这里插入图片描述

分组函数(多行处理函数)

所有的分组函数都是对某一种数据进行操作的
特点:输入多行,最终输出结果1行

  • count
  • sum
  • max
  • min
  • avg
    求出员工总人数
    在这里插入图片描述
    求出总工资
    在这里插入图片描述
    求出最大工资
    在这里插入图片描述
    求出最小工资
    在这里插入图片描述

求出员工平均工资
在这里插入图片描述
分组函数也可以组合使用
在这里插入图片描述

单行处理函数

特点:输入一行,输出一行

计算每个员工的年薪
在这里插入图片描述

需要使用ifnull()函数:ifnull(括号中是可能为NULL的数据,将被当作什么处理)
正确写法如下
在这里插入图片描述
注意:单行处理函数不会忽略NULL,但在多行处理函数中,会直接忽略NULL
在这里插入图片描述

count

  • count(*)
    在这里插入图片描述
  • count(具体字段)
    在这里插入图片描述
    两者的区别
    count(*)不是统计某个字段中的个数,而是统计总记录条数(和某个字段无关)。
    count(具体字段):表示统计具体字段中不为NULL的总数。

group by 和 having

  • group by:按照某个字段或者某些字段进行分组
  • having:是对分组之后的数据进行再次过滤

找出每个工作岗位的最高薪资
在这里插入图片描述
注意:

  • 分组函数一般都会和group by函数组合使用,这就是为什么它被成为组合函数的原因。
  • 并且任何一条分组函数都是在group by语句执行结束后才会执行的。
  • 当一条SQL语句没有group by时,整个表的数据会自成一组。
  • 在含有group by的语句中,select后只能跟参与分组的字段和分组函数。

思考:这条语句为什么错误
题目:找出工资比平均工资高的员工
在这里插入图片描述
原因:SQL语法中有一条语法规则,分组函数不可以直接使用在where字句当中,这是因为group by是在where执行之后才会执行的
在这里插入图片描述
正确步骤如下
第一步:找出平均工资
在这里插入图片描述
第二步:找出比平均工资高的员工
在这里插入图片描述
合并两个语句,就是使用子查询
在这里插入图片描述
找出每个部门不同岗位之间的最高薪资
在这里插入图片描述
找出每个部门的最高薪资,要求显示薪资大于2900的数据
在这里插入图片描述
在这里插入图片描述
找出每个部门的平均薪资,要求显示薪资大于2000的数据
在这里插入图片描述
注意:group by 和having是搭配使用的,having是对group by分组之后的数据进行再次过滤,having无法单独使用。

最后

一个完整的DQL(数据查询语言)执行顺序
在这里插入图片描述
文章为学习笔记,如有不足,还请指正。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值