逻辑查询处理阶段
1、FROM:对from子句中的两个表执行笛卡尔积(交叉连接),生成虚拟表V1
2、ON:对V1应用on筛选器。只有那些使条件为真的行才会被插入到V2
3、OUTER(JOIN):如果指定了OUTER JOIN(相对于CROSS JOIN或INNER JOIN),保留表中未找到匹配的行将被作为外部行添加到V2,生成V3;
4、WHERE:对V3应用WHERE筛选器,只有使条件为真的行才被插入V4
5、GROUP BY:按GROUP BY子句中的列列表对V4中的行分组,生成V5
6、HAVING:对V5应用HAVING筛选器,只有使条件为真的组才会被插入到V6(注:此筛选是对V5中的每一组进行该操作)
7、SELECT:处理SELECT 列表,生成V7
8、DISTINCT:将重复行从V7中移除,产生V8
9、ORDER BY:将V8中的行按ORDER BY 子句中的列列表排序,生成一个游标V9
10、TOP:从V9的开始处选择指定数量或比例的行,生成V10,返回给调用者