书写SQL与执行SQL的区别
【摘要】 书写SQL与执行SQL的区别
区别
mysql 写sql的顺序:
select -> from-> where->group by->having->order by.
mysql的解析器执行顺序:
from-> where->group by->having->select->order by.
SELECT语句中子句的执行顺序与SELECT语句中子句的输入顺序是不一样的
每个子句执行后都会产生一个中间结果,供接下来的子句使用
mysql执行sql的顺序从From开始,以下是执行的顺序流程
1、FROM table1 left join table2 on将table1和table2中的数据产生笛卡尔积,生成Temp1
2、ON table1.column=table2.columu确定表的绑定条件由Templ产生中间表Temp2
3、JOIN 指定连接类型
4、WHERE对中间表Temp2产生的结果进行过滤产生中间表Temp3
5、GROUP BY对中间表Temp3进行分组,产生中间表Temp4
6、HAVING对分组后的记录进行聚合产生中间表Temp5
7、SELECT对中间表Temp5进行列筛选。产生中间表Temp6
8、DISTINCT对中间表Temp6进行去重,产生中间表Temp7
9、ORDER BY对Temp7中的数据进行排序,产生中间表Temp8
10、LIMT对中间表Temp8进行分页,产生中间表Temp9
超详细的解释
https://www.cnblogs.com/dh17/articles/15507983.html
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)