排序查询
语法:order by 排序字段1 排序方式1, 排序字段2 排序方式2
排序方式:
- ASC 升序,默认的
- DESC 降序
⚠️注意:如果有多个排序条件,则当前一个条件值一样的时候,才会判断第二条件。
聚合函数
将一列数据作为一个整体,进行纵向的计算
- count:计算个数。一般选择非空的列
select count(*) from stu
- max: 计算最大值
select max(score) from stu
- min: 计算最小值
select min(score) from stu
- sum: 计算和
select sum(score) from stu
- avg: 计算平均值
select avg(score) from stu
⚠️注意:聚合函数的计算,排除null值
解决方案:
1.选择不包含非空的列进行计算
2.使用IFNULL函数
分组查询
语法:group by 分组字段;
⚠️注意:分组之后查询的字段:分组字段、聚合函数
- where 和 having 的区别?
- where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来。
- where 后不能跟聚合函数,having可以使用聚合函数
分页查询
语法:limit 开始索引,每页查询的条数
公式:开始索引 = (当前的页码 - 1 )* 每页显示的条数
limit 是mysql的方言
-- 每页显示3条记录
SELECT * FROM stu LIMIT 0,3; ---第1页
SELECT * FROM stu LIMIT 3,6; ---第2页
SELECT * FROM stu LIMIT 6,3; ---第3页
基础查询
- 多个字段的查询
select 字段名1,字段名 2 ... from 表名
⚠️注意
如果查询所有字段,则可以使用*
- 去除重复
关键字 DISTINCT
select DISTINCT(字段名1) from 表名
- 计算列
一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)
IFNULL(表达式1,表达式2) - 起别名
- as 也可以省略as
select name as 姓名 from 表名
select name 姓名 from 表名
条件查询
1.where子句后面跟条件
2.运算法
- <、<=、>、 >= 、= 、<>
- BETWEEN...AND
- IN(集合)
- LIKE
- IS NULL
- and 或 &&
- or 或 ||
- not 或 !