一条SQL语句内部的执行流程
按语法顺序写出 SQL 语句,SQL 语句可以分为三个部分,如下图所示。
按执行顺序写出 SQL 语句,则其顺序如下图所示。
基于以上的顺序,SQL语句中有如下的规则:
ORDER BY
中出现的字段必须出现在SELECT
中。因为 SQL 语句是先SELECT
后ORDER BY
,如果SELECT
中根本就没有选择一个字段,那么ORDER BY
就没法用它进行排序。- 若在
HAVING
的过滤操作可以在WHERE
中完成,则应该优先考虑WHERE
来实现。因为 SQL 是先执行WHERE
后执行HAVING
,把WHERE
可以过滤掉的数据留到HAVING
中去过滤,可能会经过GROUP BY
,从而产生计算资源的浪费。
MySQL中SQL语句的执行流程
从整体上看,有如下 6 个步骤。
简单来看,有如下 3 个步骤。