前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL语句执行顺序是什么样的呢

SQL语句执行顺序是什么样的呢

作者头像
共饮一杯无
发布2022-11-24 20:54:41
5780
发布2022-11-24 20:54:41
举报

select语句定义如下:

代码语言:javascript
复制
<SELECT clause> [<FROM clause>] [<WHERE clause>] [<GROUP BY clause>]
[<HAVING clause>] [<ORDER BY clause>] [<LIMIT clause>] 

先给出SQL语句执行顺序结论,后通过案例分析:

  1. 最先执行from tab;
  2. where语句是对条件加以限定;
  3. 执行分组语句group by
  4. 执行分组函数
  5. 执行分组后过滤having
  6. select语句。
  7. order by排序语句。
  8. limit

Select 6 … 分组函数(avg、sum等) 4 … From 1 … where 2 … group by 3 … having 5 … order by 7 limit 8

案例SQL执行分析

代码语言:javascript
复制
select deptno ,avg(sal) from emp where ename is not null group by 
deptno having avg(sal)>2000 order by deptno desc;
  1. 先确定从哪个表中取数据,所以最先执行from emp。如果存在多表连接,可以对表加别名,方便后面的引用。
  2. 执行 where子句, 筛选 emp 表中ename数据不为 null 的数据 。
  3. 执行 group by 子句, 把 emp 表按 “deptno” 进行分组。
  4. 执行 avg(sal) 分组函数, 按分组计算平均工资(sal)数值。 (常用的聚合函数有max,min, count,sum,聚合函数的执行在group by之后,having之前。如果在where中写聚合函数,就会出错。)
  5. 执行 having 子句, 筛选平均薪资大于2000的。
  6. 执行select选出要查找的字段,如果全选可以select *。这里选出部门编号,各部门平均工资。
  7. 执行order by 排序语句。order by语句在最后执行,只有select选出要查找的字段,才能进行排序。
  8. limit是SQL语句执行的最后一个环节。

呜啦啦啦啦 看官喜欢的话点赞收藏或者关注一下吧

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-03-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 案例SQL执行分析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com