MySQL第7讲--DQL(数据查询语言)的基本操作

前言

  在上一讲MySQL第6讲–DQL(数据查询语言)的基本操作之基本和条件查询中我们介绍了基本查询和条件查询的基本知识,以及对应的案例,今天这一讲我们讲一下,聚合函数、分组查询、排序查询、分页查询的知识;

聚合函数

  • 定义
    聚合函数:将一列数据作为一个整体,进行纵向计算;

  • 常见的聚合函数

函数功能
count统计数量
max最大值
min最小值
avg平均值
sum求和
  • 语法
SELECT 聚合函数(字段列表) FROM 表名;   # 所有的null值不参与聚合函数的计算
  • 案例
    案例1:统计该企业员工的数量
select count(*) from employ;

统计结果如下:
在这里插入图片描述
案例2:统计该企业员工的平均年龄;

select avg(employ.age) from employ;

统计结果如下:
在这里插入图片描述
案例3:统计该企业员工的最大年龄;

select max(employ.age) from employ;

统计结果如下:
在这里插入图片描述

案例4:统计该企业员工的最小年龄;

select min(employ.age) from employ;

统计结果如下:
在这里插入图片描述
案例5:统计北京地区员工的年龄之和;

select * from employ where employ.address='北京';

第一步:找出所有地址是北京的员工

在这里插入图片描述
第二步:再计算他们的年龄之和;

select sum(age)  from employ where employ.address='北京';

计算结果如下:
在这里插入图片描述

分组查询

  • 语法
SELECT 字符段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组惠后过滤条件]
  • where和having过滤条件的区别
    • 执行时机不同:where是分组之前进行过滤,不满足where条件的不进行分组;having是分组之后进行过滤;
    • 判断条件不同:where不能对聚合函数进行判断,而having可以;
  • 案例

案例1:根据性别分组,统计男性员工和女性员工的数量;

select gender, count(*) from employ group by gender;

统计结果如下:
在这里插入图片描述
案例2:根据性别分组,统计男性员工和女性员工的平均年龄;

select avg(age) from employ group by gender;

统计结果如下:
在这里插入图片描述
案例3:查询年龄小于等于25的员工,并根据工作地址分组,获取员工数量大于等于2的地址;

select employ.address, count(*) from employ where age<=25 group by address having count(*)>=2;

查询筛选之后的结果:
在这里插入图片描述
为了方便查看我们也可以给 count(*)重命名;

select employ.address, count(*) count_address from employ where age<=25 group by address having count(*)>=2;

在这里插入图片描述

排序查询

  • 语法
SELECT 列表字段 FROM 列表 ORDER BY 字段1 排列方式1,字段2 排列方式2;
# 注意:多字段排序时,第一个字段值相同,则会根据第二个字段规则进行排序
  • 排序方式
名称功能
ASC升序(默认)
DESC降序
  • 案例
    案例1:根据年龄对公司员工进行降序排序;
select * from employ order by age desc;

排序之后的结果:
在这里插入图片描述
案例2:根据入职时间对公司员工进行降序排序;

select * from employ order by intime asc;

排序之后的结果:
在这里插入图片描述
案例2:根据入职时间对公司员工进行升序排序,如果入职时间相同则根据年龄进行降序排序;

select * from employ order by intime, age desc;
# select * from employ order by intime; 作用是根据入职时间进行升序排序
#  age desc; 作用是根据前面的排序结果进行降序排序;

排序结果如下:
在这里插入图片描述

分页查询

  • 语法
SELECT 查询列表 FROM 表名 LIMIT 起始索引,查询记录数;
# 注意:起始索引=(页码-1)*每一页查询记录数

+案例
案例1:查询第一页员工记录,每页展示3条记录;

select * from employ limit 0, 3;

在这里插入图片描述

案例2:查询第2页员工记录,每页展示3条记录;

select * from employ limit 3, 3;

在这里插入图片描述
好了DQL基本操作到此为止就讲完了。

如有错误欢迎指正,如果帮到您了请点赞加收藏哦!
在这里插入图片描述

  • 20
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xp_fangfei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值