本节内容:
1、单表查询的语法
2、关键字的执行优先级(重点)
3、简单查询
4、where约束(重点)
5、group by 分组查询(重点)
6、having 过滤(重点)
7、order by 查询排序(重点)
8、limit 限制查询的记录数(重点)
9、使用正则表达式查询
一、单表查询的语法
查询数据的本质:mysql会到你本地的硬盘上找到对应的文件,
然后打开文件,按照你的查询条件来找出你需要的数据。
下面是完整的一个单表查询的语法
Bash
二、关键字的执行优先级(重点)
1、关键字的执行优先级:重点中的重点
Bash
详见:
三、简单查询
注意一点,在查询语句里面select 字段 from 表,这几项是必须要有的,
其他的什么where、group by等等都是可有可无的
先创建一个表,为后面执行查询操作演示
Bash
1、查询操作
相关查询操作
Bash
fe:小练习
答案
四、where约束
1、where的约束条件
1、where不能使用聚合函数,原因:(对照having)
Where 发生在分组group by之前,因而Where中可以有任意字段,
但是绝对不能使用聚合函数。
具体的查询代码示例
Bash
2、where条件及select执行的顺序
fe:where小练习
Bash
答案
Bash
五、group by : 分组查询
1、在where之后使用,即分组是基于where之后得到的记录而进行的分组
2、分组:指的是根据某个相同的字段进行分类。
3、分组的作用: 以组为单位进行一些数据统计,或是进行一些计算
取每个部门的最高工资
取每个部门的员工数
取男人数和女人数
4、大前提:
可以按照任意字段分组,但是分组完毕后,比如group by post,只能查看post字段,
如果想查看组内信息,需要借助于聚合函数
1、根据post分组的结果分析
Bash
2、ONLY_FULL_GROUP_BY
Bash
代码示例
Bash
3、group by的使用及配合聚合函数
Bash
4、聚合函数
强调:聚合函数聚合的是组的内容,若是没有分组,则默认一组
Bash
5、小练习
Bash
答案
Bash
六、having过滤(也是筛选的效果)
1、在group by 后使用。
2、having的语法格式和where是一模一样的,
3、having可以使用聚合函数,原因:(对照where)
Having发生在分组group by之后,因而Having中可以使用分组的字段,
无法直接取到其他字段,having是可以使用聚合函数
4、having不能单独使用,having必须跟在group by后面使用,
1、having的简单测试
Bash
2、小练习
Bash
答案
Bash
六.五、distinct 去重
1、将查询的结果进行去重:select distinct post from employee;
2、注意distinct去重要写在查询字段的前面,不然会报错,
3、distinct不能返回其他的字段,只能返回目标字段
Bash
七、order by 查询排序
1、单列排序
Bash
2、多列排序
数据在第一个排序条件相同的情况下,进行下一个条件排序
Bash
3、小练习
1. 查询所有员工信息,先按照age升序排序,如果age相同则按照hire_date降序排序
2. 查询各岗位平均薪资大于10000的岗位名、平均工资,结果按平均薪资升序排列
3. 查询各岗位平均薪资大于10000的岗位名、平均工资,结果按平均薪资降序排列
答案
Bash
八、limit 限制查询的记录数
Bash
1、分页显示,每页显示5条数据
好多的网站都可以看到一个分页的功能。
Bash
九、正则表达式的查询
之前我们用like做模糊匹配,只有%和_,局限性比较强,所以我们说一个正则,
之前我们是不是学过正则匹配,你之前学的正则表达式都可以用,正则是通用的