数据库--SQL关键字的执行顺序

一条sql语句通常包括:

select from join where group by having order by 聚合函数 limit top

浅谈执行顺序:

1)、首先确定一点,并不是按照我们写的语句顺序,从左--->右执行的

2)、获取结果集 ----> 指定查询的某些字段 --> 按照某些内容进行排序

首先 执行from ,join 确定表之间的关系,得到初步的----->结果集1

where 对结果集1 进行筛选 得到-->结果集2

group by 进行分组 -->结果集3

对结果集3进行having筛选,得到 ---->结果集 4

指定查询的字段:

select 指定需要查询的字段,也可以是聚合函数 --->结果去重

合并分组结果集,并按照order by 的 条件进行排序

如果存在limit 或者top之类的话,这是在最后才会执行的

小结:

第一句话: 从这个顺序中我们可以发现,所有的查询语句都是从 FROM开始执行的。

**第二句话:**在实际执行过程中,每个步骤都会为下一个步骤生成一个虚拟表,这个虚拟表将作为下一个执行步骤的输入。

看到这了,点个赞再走吧!

相关推荐
一 乐1 小时前
基于vue船运物流管理系统设计与实现(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端·船运系统
jerry6091 小时前
注解(Annotation)
java·数据库·sql
lwprain3 小时前
springboot 2.7.6 security mysql redis jwt配置例子
spring boot·redis·mysql
vcshcn3 小时前
DBASE DBF数据库文件解析
数据库·dbase
AIGC大时代4 小时前
对比DeepSeek、ChatGPT和Kimi的学术写作撰写引言能力
数据库·论文阅读·人工智能·chatgpt·数据分析·prompt
如风暖阳5 小时前
Redis背景介绍
数据库·redis·缓存
lingllllove6 小时前
Redis脑裂问题详解及解决方案
数据库·redis·缓存
字节全栈_BjO6 小时前
mysql死锁排查_mysql 死锁问题排查
android·数据库·mysql
微光守望者6 小时前
Redis常见命令
数据库·redis·缓存
martian6657 小时前
第六篇:事务与并发控制
数据库