MYSQL SQL语句定义和执行顺序

摘自《MySQL技术内幕:SQL编程》

SQL语句执行顺序

  1. FROM <left_table>: 对FROM子句中的表执行笛卡尔积,产生虚拟表VT1。
  2. <join_type> JOIN <right_table> ON <join_condition>: 对VT1应用连接条件,产生虚拟表VT2。
  3. WHERE <where_condition>: 对VT2应用WHERE条件,产生虚拟表VT3。
  4. GROUP BY <group_by_list>: 对VT3进行分组,产生虚拟表VT4。
  5. WITH {CUBE|ROLLUP}: 对VT4进行多维数据汇总,产生虚拟表VT5。
  6. HAVING <having_condition>: 对VT5应用HAVING条件,产生虚拟表VT6。
  7. SELECT (DISTINCT <select_list>): 从VT6中选择列,并可能去除重复行,产生虚拟表VT7。
  8. ORDER BY <order_by_condition>: 对VT7进行排序,产生虚拟表VT8。
  9. LIMIT <limit_number>: 从VT8中取出指定数量的行,并返回给用户。

SQL语句定义顺序

  1. SELECT (DISTINCT <select_list>): 定义要查询的列,包括是否使用DISTINCT去除重复行。
  2. FROM <left_table>: 定义查询的主表,即数据的主要来源。
  3. <join_type> JOIN <right_table> ON <join_condition>: 定义与主表的连接操作,包括连接类型和连接条件。
  4. WHERE <where_condition>: 定义筛选条件,只返回符合条件的行。
  5. GROUP BY <group_by_list>: 对结果集进行分组。
  6. WITH {CUBE|ROLLUP}: 对分组结果进行多维数据汇总,产生超立方体或上卷数据。
  7. HAVING <having_condition>: 对分组后的结果进行过滤。
  8. ORDER BY <order_by_condition>: 对结果集进行排序。
  9. LIMIT <limit_number>: 限制返回的行数。

wx公众号:Java技术咖啡馆

你的关注,是我们的动力:每一次的点赞、分享和评论,都是对我最大的支持和鼓励。你的关注,将是我不断前行的动力。感谢你的支持,期待你的关注。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值