SQL各字段的执行顺序(初步篇)

背景:修改SQL的时候呢,需要理解SQL各个部分的执行顺序才能继续下一步的工作。不然改了一通,行不行还另说…但是,很遗憾,我现在还没有时间或者说没有能力去读看MySQL源码之类的,so,请路过的大佬们多多指教。
先写一个SQL(主要就是为了便于看到各个字段在SQL语句中的位置,想看表结构的去这(没错,这里有那张表))。

SELECT * FROM (
SELECT DISTINCT * FROM student WHERE sclass IS NOT NULL GROUP BY sage HAVING sage >= 22 
UNION
SELECT DISTINCT * FROM teacher WHERE tclass IS NOT NULL GROUP BY tage HAVING tage > 20
)  temp
ORDER BY sage ASC;

美化一番之后(我也没见有多美啊)。
在这里插入图片描述
接下来是我从各个大佬那里搞来的执行顺序,很可惜我还是不知其所以然。但是,不知其所以然就不管了吗?本菜鸡怎能和那样的人一样呢?本菜鸡就算不懂这是个啥么东西,也要背过它,等过一段时间本菜鸡还是会回来的。好,上法宝!!!
①from :这是老大哥,先问问数据你从哪里搞,
②where ③group by ④having :来,小老弟,说说你的要求
⑤select :好的嘛!挑好了是吧!
⑥union : 什么?你还有业务。好吧!(注意union 连接的两个查询列数一定要一致, 查询派生表的数据的时候必须要为派生表起一个别名。)
⑦order by : 来,我给你排个序!
大体上意思就是这个意思。觉得我说的不对的,来,给你粉笔,就在下面,咱们聊一聊(欢迎指教)。在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值