书写SQL与执行SQL的区别

举报
小小张自由--张有博 发表于 2022/05/25 12:19:09 2022/05/25
【摘要】 书写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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。