一个互联网技术玩家,一个爱聊技术的家伙。在工作和学习中不断思考,把这些思考总结出来,并分享,和大家一起交流进步。
合理的图文组织,让大家可以更容易学习一个技术。
SQL 执行顺序
群里面看到这个图,也感觉总结的还挺好。
SQL 执行顺序是指在执行 SQL 查询时,各个子句和操作的执行顺序。
以下是 SQL 查询的典型执行顺序:
- FROM 子句:首先处理 FROM 子句,加载指定的数据表。
- ON 子句:如果存在 JOIN 操作,ON 子句会在此阶段处理,确定表之间的连接条件。
- WHERE 子句:接下来,在 FROM 和 ON 子句处理完后,WHERE 子句会对数据表中的记录进行筛选,排除不满足条件的记录。
- GROUP BY 子句:如果包含 GROUP BY 子句,那么会对筛选后的记录进行分组操作。
- HAVING 子句:处理完 GROUP BY 后,HAVING 子句会对分组后的各个组进行筛选,仅保留满足 HAVING 条件的组。
- SELECT 子句:在上述筛选过程之后,根据 SELECT 子句的列进行数据的选择与投影。
- DISTINCT 子句:若包含 DISTINCT 关键字,查询结果会去除重复的记录。
- ORDER BY 子句:对查询结果进行排序,可以指定 ASC(升序)或 DESC(降序)。
- LIMIT 子句:限制查询结果的数量。
需要注意的是,这个顺序并不是绝对的。不同的数据库管理系统(DBMS)可能会根据查询优化器的判断,对执行顺序进行调整,以获得更高的查询性能。
但是,理解 SQL 执行顺序有助于编写高效的查询语句,并减少不必要的性能损失。