在编写了大量 SQL 脚本之后,您可能会在性能方面达到某种形式的平台期。您使用相同的策略提取见解并遇到相同类型的错误。
幸运的是,您可以通过花时间了解如何评估 SQL 中的子句来改善编写查询的体验。
在这里,我们讨论 SQL 中的执行顺序并解释它的重要性。
执行顺序
SQL 查询在评估子句时遵循特定的顺序,类似于数学运算遵循 PEMDAS 或 BIDMAS 的方式。
从用户的角度来看,查询从第一个子句开始,到最后一个子句结束。但是,查询实际上并不是在执行时从上到下读取的。
查询中子句的执行顺序如下:
- FROM/JOIN:首先执行 FROM 和/或 JOIN 子句以确定感兴趣的数据。
2、WHERE:执行WHERE子句,过滤掉不满足约束条件的记录。
-
GROUP BY:执行 GROUP BY 子句,根据一列或多列中的值对数据进行分组。
-
HAVING:执行HAVING子句,删除创建的不满足约束的分组记录。
-
SELECT:执行 SELECT 子句以派生所有所需的列和表达式。
-
ORDER BY:执行 ORDER BY 子句以按升序或降序对派生值进行排序。
-
LIMIT/OFFSE