SQL执行顺序

1.From and JOIN

 

首先我们进行查询的时候,肯定是先获得一份数据集的,From语句和JOIN被先执行的,就是为了获得数据集的。

 

2.WHERE

 

一旦数据集给拿到了,WHERE限制条件会被用到某些行上,并把不满足的行给抛弃掉。并且,这能够用到各种数据类型中

 

3.GROUP BY

 

WHERE条件限定之后,接下来就是GROUP BY语句了,这一语句会根据某一字段进行分组,并对各个组进行求聚合。现在我们再来想想刚刚提到的代码错在哪里了呢

 

想想看,我们先进行的是FROM,紧接着是WHERE,然后才是GROUP BY。所以上面的语句就是错在了WHERE 语句在执行的时候,GROUP BY语句还没有开始,那时聚合值sum(area)还是未知的。那正确的写法呢?还请接着往下看。

 

4.HAVING

 

having语句在SQL中的主要作用与Where语句作用是相同的,但是having是过滤聚合值,其实上面的正确写法是这样的

 

5.SELECT

 

在经过上面的执行之后,终于到了select语句,但是别慌,下面还有呢。

 

6.DISTINCT

 

对于剩下的行,Distinct用来去除重复行,只保留唯一的。

 

7.ORDER BY

 

此语句用来对select后的结果,进行排序,升序或者是降序。

 

8.LIMIT/OFFSET

 

用来限定返回的行数

 

总结:

执行顺序

语句

功能

1

from

获取基础数据

2

where

过滤基础数据

3

group by

聚合基础数据

4

having

过滤聚合后的数据

5

select

返回最终的数据

6

distinct

去重最终的数据

7

order by

排序最终的数据

8

limit/offset

限定最终数据的返回行

转载于:https://www.cnblogs.com/liuyuanq/p/11302076.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值