Day47-数据库(四)
“Day47-数据库(四)学习笔记”
一、单表查询
1.1 前期表准备
当表字段特别多 展示的时候错乱 可以使用\G
分行展示:
使用后输出信息分段
1.2 几个重要关键字的执行顺序
1.3 where筛选条件
作用:是对整体数据的一个筛选操作
1.4 group by分组
什么时候需要分组?
关键字 :每个、平均、最高、最低
分组的应用场景:
- 男女比例
- 部门平均薪资
- 部门秃头率
- 国家之间数据统计
1.4.1 按照部门分组(非严格模式,了解即可)
在未设置严格模式的情况下, 可以使用如下命令查询按照部门分组
的数据
输出数据:
返回的数据实际上是有问题的,返回的是分组之后每个组的第一条数据
,但是这不符合分组的规范,
分组之后不应该考虑单个数据,而应该以组为操作单位
(分组之后 没办法直接获取组内单个数据)
在严格模式下,该命令会直接报错
1.4.2 按照部门分组(严格模式,掌握)
设置严格模式之后,分组默认只能拿到分组的依据,比如:
按照什么分组就只能拿到分组字段,其他字段不能直接获取,需要借助于一些方法(聚合函数
)
常用聚合函数:
- max 最大值
- min 最小值
- sum 求和
- count 数量
- avg 平均值
分组查询案例:
1.5 分组注意事项
关键字where和group by同时出现的时候group by必须在where的后面
where筛选条件不能使用聚合函数
不分组的情况下使用聚合函数,默认整体就是一组
1.6 分组之后的筛选条件(having)
数据分组之后,再进行一遍筛选
1.7 distinct去重
必须是完全一样的数据才可以去重!!!
一定不要将主键忽视了,有主键存在的情况下 是不可能去重的
1.8 order by排序
1.9 limit限制展示条数
1.10 正则
where后面也可以接正则表达式
二、多表操作
2.1 前期表准备
2.2 联表查询
联表查询:多张表一起查询,获取有用的数据。也可以称为“多表查询”,“拼表查询”
最简单的联表查询:
正确用法:
输出:
MySQL也知道 你在后面查询数据过程中 肯定会经常用到拼表操作,所以特地开设了对应的方法:
2.2.1 内连接
拼接两张表中的公有部分
2.2.2 左连接
左表所有的数据都展示出来 没有对应的项就用NULL
2.2.3 右连接
右表所有的数据都展示出来 没有对应的项就用NULL
2.2.4 全连接
全连接 左右两表所有的数据都展示出来
2.5 子查询
子查询就是我们平时解决问题的思路,将一个查询语句的结果当做另外一个查询语句的条件去用,
查询部门是技术或者人力资源的员工信息案例如下:
三、作业
Day47-数据库(四)
http://gsproj.github.io/2022/07/18/03_Python/03_MySQL/day47-数据库(四)/