SQL解析过程
SQL解析过程
-
FROM
from 后面的表标识了这条语句要查询的数据源
from 过程之后会形成一张虚拟的表 VT1 -
WHERE
WHERE 对生成的 VT1 临时表进行过滤,满足 WHERE 子句的列被插入到 VT2 -
GROUP BY
GROUP BY会把 VT2 生成的表按照 GROUP BY 中的列进行分组,生成 VT3 -
HAVING
HAVING 这个子句对 VT3 中的不同分组进行过滤,满足 HAVING 条件的被加入 VT4 -
SELECT
SELECT 对子句中的元素进行处理,生成 VT5 表- 计算表达式,计算SELECT 子句中的表达式 生成 VT5-1
- DISTINCT 寻找 VT5-1 中重复的列,并删除,生成 VT5-2
- TOP 从 ORDER BY 子句定义的结果中,筛选出符合条件的列,生成 VT5-3
-
ORDER BY
从 VT5-3 中,根据子句的结果进行排序,生成 VT-6