SQL 执行顺序

群里面看到这个图,也感觉总结的还挺好。

SQL 执行顺序是指在执行 SQL 查询时,各个子句和操作的执行顺序。


以下是 SQL 查询的典型执行顺序:

  1. FROM 子句:首先处理 FROM 子句,加载指定的数据表。

  2. ON 子句:如果存在 JOIN 操作,ON 子句会在此阶段处理,确定表之间的连接条件。

  3. WHERE 子句:接下来,在 FROM 和 ON 子句处理完后,WHERE 子句会对数据表中的记录进行筛选,排除不满足条件的记录。

  4. GROUP BY 子句:如果包含 GROUP BY 子句,那么会对筛选后的记录进行分组操作。

  5. HAVING 子句:处理完 GROUP BY 后,HAVING 子句会对分组后的各个组进行筛选,仅保留满足 HAVING 条件的组。

  6. SELECT 子句:在上述筛选过程之后,根据 SELECT 子句的列进行数据的选择与投影。

  7. DISTINCT 子句:若包含 DISTINCT 关键字,查询结果会去除重复的记录。

  8. ORDER BY 子句:对查询结果进行排序,可以指定 ASC(升序)或 DESC(降序)。

  9. LIMIT 子句:限制查询结果的数量。

需要注意的是,这个顺序并不是绝对的。不同的数据库管理系统(DBMS)可能会根据查询优化器的判断,对执行顺序进行调整,以获得更高的查询性能。

但是,理解 SQL 执行顺序有助于编写高效的查询语句,并减少不必要的性能损失。


640.png