前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【JavaP6大纲】MySQL篇:SQL的整个解析、执行过程原理、SQL行转列?

【JavaP6大纲】MySQL篇:SQL的整个解析、执行过程原理、SQL行转列?

作者头像
Java廖志伟
发布2021-04-13 16:29:26
5370
发布2021-04-13 16:29:26
举报
文章被收录于专栏:高级开发进阶高级开发进阶

SQL的整个解析、执行过程原理、SQL行转列?

sql语句执行顺序 (8) SELECT (9)DISTINCT<select_list> (1) FROM <left_table> (3) <join_type> JOIN <right_table> (2) ON <join_condition> (4) WHERE <where_condition> (5) GROUP BY <group_by_list> (6) WITH {CUBE|ROLLUP} (7) HAVING <having_condition> (10) ORDER BY <order_by_list> (11) LIMIT <limit_number> 可以看到,一共有十一个步骤,最先执行的是FROM操作,最后执行的是LIMIT操作。每个操作都会产生一个虚拟表,该虚拟表作为一个处理的输入,看下执行顺序:

(1) FROM:对FROM子句中的左表<left_table>和右表<right_table>执行笛卡儿积,产生虚拟表VT1; (2) ON: 对虚拟表VT1进行ON筛选,只有那些符合<join_condition>的行才被插入虚拟表VT2; (3) JOIN: 如果指定了OUTER JOIN(如LEFT OUTER JOIN、RIGHT OUTER JOIN),那么保留表中未匹配的行作为外部行添加到虚拟表VT2,产生虚拟表VT3。如果FROM子句包含两个以上的表,则对上一个连接生成的结果表VT3和下一个表重复执行步骤1~步骤3,直到处理完所有的表; (4) WHERE: 对虚拟表VT3应用WHERE过滤条件&#

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-04-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SQL的整个解析、执行过程原理、SQL行转列?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档