一个对SQLift中SELECT查询语句结构的简单理解

一、前言

        这里只是一个对SQLift中SELECT查询语句结构的简单理解,没有对其结构更进一步拓展。(末尾小彩蛋是一个对LIMIT OFFSET的一个‘分页’应用的分析)

二、基本内容

语法格式


                                                        顺序及功能
---------------------------------------------------------------------------------

SELECT               字段名                5.查询的内容
FROM                  表名                    1.数据来源         
WHERE               条件                    2.过滤数据行
GROUP BY         分组字段              3.进行分组
HAVING              分组后的过滤       4.过滤分组后的数据
ORDER BY         字段名                 6.进行排序    

LIMIT   显示的行数  OFFSET  删除的行数

---------------------------------------------------------------------------------

其结构实现的功能

 SELECT      FROM ,实现查询哪一个表中的什么数据,是查询一个表中的数据的必不可少的组成部分。

 WHERE  ,是初步对表中的数据进行筛选。

 GROUP BY ,是对表中的数据进行分组。

 HAVING  ,是对分组后的数据进行的筛选。

 ORDER BY  , 是对查找完的数据进行排序。

 LIMIT      OFFSET  ,是将查询后的结果显示出满足一定条件的数量(先执行OFFSET删除部分行的数据,在执行LIMIT显示部分行的数据)。

三、注意

WHERE 与 GROUP BY的区别

1. WHERE是在分组前对个体进行筛选,HAVING是分组之后对群体进行筛选。

2. WHERE可以独立存在,HAVING必须依赖于GROUP BY子句。

3. WHERE不适用统计函数,HAVING通常使用统计函数。

一个LIMIT OFFSET的‘分页’操作

设每页显示的条数为n,当前页码为m,得分页查询公式为:

SELECT * FROM 表名 LIMIT n OFFSET (m-1)*n;

分析:LIMIT OFFSET是对一行行数据进行的截取与删除。‘分页’的原理就是用OFFSET将你需要显示数据之前的数据全部删除,然后用LIMIT显示出你需要的行数。

【举起一个小彩蛋】 要显示绿色页数据,即每页显示三条数据,当前页码为3

         橙色为数据,蓝色与绿色为页,想要只显示第三页(绿色页),就需要先用OFFSET删除前两页,然后用LIMIT再选第一页(因为已经删除了前两页蓝色的,所以第一页就是想要的那一页绿色的)。

套用公式

SELECT * FROM 表名 LIMIT n OFFSET (m-1)*n;

先进行删除数据:

OFFSET (3-1)*3 将前两页的6条数据删除(删除前两个蓝色页)

再进行显示数据

LIMIT 3 显示3条数据(只显示绿色页)


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值