1、排序语句(掌握SQL中针对查询结果的排序)
SELECT
*
FROM 表名
ORDER BY 列1 [ASC | DESC] , 列2 [ASC | DESC] , ... ;
排序方式:
- ASC:ascending,升序(从小到大)
- DESC:descending,降序(从大到小)
注意点:可以根据多列排序,前列值相同的数据,再根据后列值排序
order by 字段名称 asc升序排列(升序排列中,asc可以省略不写,因为默认就是升序)
order by 字段名称 desc降序排列
- 按照商品评分对数据从大到小排序
select * from goods order by score desc;
- 按照商品价格由低到高排序
select * from goods order by price;
- 多字段排序,先按照第一个排列,能比较出大小,不进行后续排列了;如果前面字段值相同,则继续按照第二个字段进行排序
select * from goods order by score desc ,price asc;
2、去重查询(掌握SQL查询中DISTINCT去重的使用)
作用:对查询结果中重复的结果进行去重。
SELECT
DISTINCT 字段1,字段2,...
FROM 表 ;
基本语法 => select distinct 字段名称1,[字段名称2] from 数据表;
- 查询所有商品名称,要实现去重
select name from goods;
select distinct name from goods;
- 查询所有商品信息(商品 + 价格)进行去重操作
select distinct name,price from goods;
注意点:DISTINCT是针对查询结果中的整行内容进行去重,不是单个字段
3、LIMIT查询(掌握SQL中LIMIT查询的使用)
作用:获取查询结果中指定范围内的行。
SELECT
字段列表
FROM 表名
LIMIT M,N ;
M:表示开始行索引,默认是0,代表从第M+1行开始
N:表示查询条数,即提取多少条数据
基本语法 => select * from 数据表 limit M,N; (M索引,从0开始 + N代表查询数量)
如果索引默认从0开始,则M可以省略不写 => select * from 数据表 limit N;
- 获取价格最高的商品(假定最高的只有一个没有重复的情况)
select * from goods order by price desc limit 1;
-
LIMIT分页查询,按照商品价格由低到高排序,然后获取第二页的内容(每页3条)
select * from goods order by price limit 3,3;
注意:LIMIT分页查询公式 => select * from数据表 limit (当前页页码 - 1) * 每页数量,每页数量; M = (当前页页码 - 1) * 每页数量 N = 每页数量
- 例:每页显示10条记录,一共有20页,问第8页,SQL语句怎么写?
select * from goods order by price limit 70,10;
4、SQL执行顺序(熟悉SQL语句的执行顺序)
注意:SQL语句的执行顺序往往和我们写SQL的顺序是不一样的
SQL执行顺序 => 五子句顺序
五子句:
① WHERE子句 ② GROUP BY > 聚合函数 ③ HAVING子句 ④ ORDER BY子句 ⑤ LIMIT子句