SQL-DQL中排序、去重与LIMIT查询

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子句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值