完整语法&执行顺序和编写顺序
编写顺序: 执行顺序:
SELECT FROM
字段列表 表名列表
FROM WHERE
表名列表 条件列表
WHERE GROUP BY
条件列表 分组字段
GROUP BY HAVING
分组字段 分组后条件
HAVING SELECT
分组后条件 字段列表
ORDER BY ORDER BY
基础查询
查询多个字段:
SELECT 字段列表 FROM 表名;
SELECT * FROM 表名; -- 查询所有数据
去除重复记录:
SELECT DISTINCT 字段列表 FROM 表名;
起别名:
AS: AS 也可以省略
查询条件
SELECT 字段列表 FROM 表名 WHERE 条件列表;
模糊查询练习
模糊查询使用like关键字,可以使用通配符进行占位:
_ : 代表单个任意字符
% : 代表任意个数字符
聚合函数
SELECT 聚合函数名(列名) FROM 表;
注意:null值不参与所有的聚合函数运算
分组查询
SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];
注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义
排序查询
SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2] …;
上述语句中的排序方式有两种,分别是:
ASC : 升序排列 (默认值)
DESC : 降序排列
注意:如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序
分页查询
SELECT 字段列表 FROM 表名 LIMIT 起始索引 , 查询条目数;
注意: 上述语句中的起始索引是从0开始
从0开始查询,查询3条数据:
select * from stu limit 0 , 3;
每页显示3条数据,查询第1页数据:
select * from stu limit 0 , 3;
每页显示3条数据,查询第2页数据:
select * from stu limit 3 , 3;
每页显示3条数据,查询第3页数据:
select * from stu limit 6 , 3;
从上面的练习推导出起始索引计算公式:
起始索引 = (当前页码 - 1) * 每页显示的条数
注意:
分页查询是数据库的方言,不同的数据库有不同的实现,MySQL是limit
如果查询的是第一页的数据,起始索引可以省略,直接简写为limit 10