mysql的编写顺序和执行顺序。
书写顺序:
选择从加入开启位置分组依据拥有订购依据限制
执行顺序:
从开加入在哪里分组依据拥有选择区别排序依据限制
执行顺序:
1.from用from关键字加载表,计算笛卡尔乘积,并生成虚拟表vt1。
2.过滤关联表中满足on表达式的数据,保留主表数据,生成虚拟表vt2。
Join表示要关联的表,on表示联接条件。
3.外部连接,当执行on时,主表中不满足on条件的数据也将作为外部行加载。
4.如果4.from子句涉及多个表,重复1-3,直到所有表都被加载,并更新虚拟表vt3。
5.执行where表达式并过滤数据以生成表达式vt5。
6.执行group by子句分组,这将把子句组合成唯一值,每个唯一值只包含一行,从而生成虚拟表vt5。
在这一步的开始,您可以在select中使用别名,这将返回一个游标而不是一个表。
您不能在where中的select中使用别名,但是拥有别名可以。
7.执行聚合函数生成虚拟表vt6。
8.执行having,过滤数据并生成vt7。
9.执行select以过滤vt7数据并生成vt8。
10.执行不同的、重复的vt8并生成vt9。
11 .按排序排序vt9消耗资源。
12执行限制并返回。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/52111.html