条件查询
select 字段列表 from 表名 where 条件列表;
条件:
| 比较运算符 | 功能 |
|---|---|
| > | 大于 |
| >= | 大于等于 |
| < | 小于 |
| <= | 小于等于 |
| = | 等于 |
| <>或!= | 不等于 |
| Between…And… | 在某个范围之内(含量小,最大值) |
| in(…) | 在in之后的列表中的值,多选一 |
| like 占位符 | 模糊匹配(_匹配单个字符,%匹配任意个字符) |
| is null | 是null |
| 逻辑运算符 | 功能 |
|---|---|
| and或&& | 并且(多个条件同时成立) |
| or | 或者(多个条件任意一个成立) |
| not 或! | 非,不是 |
聚合函数
将一列数据作为一个整体,进行纵向计算
常见聚合函数:
| 函数 | 功能 |
|---|---|
| count | 统计数量 |
| max | 最大值 |
| min | 最小值 |
| avg | 平均值 |
| sum | 求和 |
语法:
select 聚合函数(字段列表) from 表名;
注意: null值不参与所有聚合函数运算
分组查询
语法:
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件]
where与having的区别:
执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;having是分组之后对结果进行过滤.
判断条件不同:where不能对聚合函数进行判断,而having可以.
需求:
- 根据员工性别分组,统计男性员工和女性员工的数量
- 根据性别分组,统计男性员工和女性员工的平均年龄
- 查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址
1. select gender, count(*) from emp group by gender;
2. select gender, avg(age) from emp group by gender;
3. select workaddress, count(*) from emp where age<45
group by workaddress having count(*)>=3;
执行顺序: where > 聚合函数 > having;
分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义.
排序查询
select 字段列表 from 表名 order by 字段1 排序方式1, 字段2 排序方式2;
排序方式:
ASC: 升序(默认值)
DESC: 降序
如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序.
需求: 根据年龄对公司员工进行升序/降序排序
select * from emp order by age asc/desc;
分页查询
select 字段列表 from 表名 limit 起始索引, 查询记录数;
起始索引从0开始, 起始索引=(查询页码-1)*每页显示记录数.
分页查询是数据库的方言,不同数据库有不同实现,MySQL中是Limit
如果查询的是第一页数据,起始索引可以省略,直接简写为limit10.
需求:
- 查询第一页员工数据,每页展示10条记录
- 查询第二条员工数据,每页展示10条记录
1. select * from emp limit 0,10;
2. select * from emp limit 10, 10;

本文详细介绍了MySQL中的条件查询,包括使用聚合函数进行数据汇总,通过WHERE和HAVING子句进行分组查询,以及利用ORDER BY进行排序查询。此外,还探讨了分页查询的实现,如LIMIT关键字的应用,以帮助读者更好地理解和应用这些高级查询技巧。
747

被折叠的 条评论
为什么被折叠?



