数据库语句的执行顺序

2.1、数据库语句的执行顺序 

(一): 执行顺序  from -> on -> join -> where -> group by -> having -> count(聚合函数) -> select -> distinct -> order by -> limit 

(二): 执行步骤解释: 

(1)、from: 表示数据的来源 

(2)、on: 表示数据的关联表,执行完后生成一个临时表t1,提供给下一步的操作使用 

(3)、join: 将join表的数据补充到on执行完成的临时表t1中,如: left join则将坐标剩余的数据添加到临时表t1中,如果join超过3个,则重复on...join之间的步骤。 

(4)、where: 根据携带的条件,从临时表中筛选出符合条件的数据,并生成临时表t2。

(5)、groub by: 根据携带的条件,将临时表t2进行相应的数据分组,并形成临时表t3,如果语句包含了group by则它后面的字段必须出现在select中或者出现在聚合函数中,否则会报SQL语法错误。 

(6)、having: 筛选分组后临时表t3的数据,得到临时表t4。 

(7)、count等聚合函数: 对临时表进行指定字段的聚合函数操作,形成临时表t5。 

(8)、select: 从临时表筛选出需要返回的数据,形成临时表t6。 

(9)、distinct: 对临时表t6进行指定的去重筛选,形成临时表t7。

(10)、order by: 对临时表t7排序,形成临时表t8。 

(11)、limit: 筛选返回的数据条数  想要了解更多的执行过程的问题,可以点击这里领取之前整理的一些面试题。

posted @   托马斯骨头收集  阅读(1981)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2017-11-09 关于Oracle中的nvl()函数的使用,中医科查询出院病人信息报错
2017-11-09 关于数据的过滤与分类,增加一种医技科室核算的统计方式
点击右上角即可分享
微信分享提示