一、查询的逻辑执行顺序
  (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
  (8) SELECT (9) DISTINCT (11) top_specification select_list
  (9) ORDER BY order_by_list
  标准的 SQL 的解析顺序为:
  (1) FROM 子句 组装来自不同数据源的数据
  (2) WHERE 子句 基于指定的条件对记录进行筛选
  (3) GROUP BY 子句 将数据划分为多个分组
  (4) 使用聚合函数进行计算
  (5) 使用HAVING子句筛选分组
  (6) 计算所有的表达式
  (7) 使用ORDER BY对结果集进行排序
  二、执行顺序
  1. FROM:对FROM子句中前两个表执行笛卡尔积生成虚拟表vt1
  2. ON: 对vt1表应用ON筛选器只有满足 join_condition 为真的行才被插入vt2
  3. OUTER(join):如果指定了 OUTER JOIN保留表(preserved table)中未找到的行将行作为外部行添加到vt2,生成t3,如果from包含两个以上表,

   则对上一个联结生成的结果表和下一个表重复执行步骤和步骤直接结    束。

  4. WHERE:对vt3应用 WHERE 筛选器只有使 where_condition 为true的行才被插入vt4
  5. GROUP BY:按GROUP BY子句中的列列表对vt4中的行分组生成vt5
  6. CUBE|ROLLUP:把超组(supergroups)插入vt6,生成vt6
  7. HAVING:对vt6应用HAVING筛选器只有使 having_condition 为true的组才插入vt7
  8. SELECT:处理select列表产生vt8
  9. DISTINCT:将重复的行从vt8中去除产生vt9
  10. ORDER BY:将vt9的行按order by子句中的列列表排序生成一个游标vc10
  11. TOP:从vc10的开始处选择指定数量或比例的行生成vt11 并返回调用者

转载于:https://www.cnblogs.com/chifa/p/7874116.html

SQL语句关键字执行顺序相关推荐

  1. 【MySQL】九、数据排序(升序 order by ... asc,降序 desc),sql语句的执行顺序

    文章目录 1. 语法 2. 案例 (1)按照工资升序,找出员工名和薪资. (2)按照工资降序,找出员工名和薪资. (3)按照工资的降序排列,当工资相同的时候在按照名字的升序排列. (4)找出员工岗位是 ...

  2. SQL语句的执行顺序以及流程

    目录 1.执行FROM语句 2.执行ON过滤 3.添加外部行 4.执行WHERE过滤 5.执行GROUP BY分组 6.执行HAVING过滤 7.SELECT列表 8.执行DISTINCT子句 9.执 ...

  3. 面试题:SQL语句的执行顺序

    SQL语句的执行顺序,学了才知道还有这么多学问 查询语句都是从 FROM 开始执行的.执行过程中,每个步骤都会为下一个步骤生成一个虚拟表,这个虚拟表将作为下一个执行步骤的输入. 具体解析 FROM 执 ...

  4. 关于SQL语句的执行顺序

    首先,要清楚在一select语句中都会用到哪些关键字: -----------select -----------from -----------join -----------where ----- ...

  5. SQL SERVER 一个SQL语句的执行顺序

    SQL SERVER 一个SQL语句的执行顺序 原文:SQL SERVER 一个SQL语句的执行顺序 一个SQL 语句的执行顺序 1.From (告诉程序 来自哪张表  如果是表表达式 依旧是如此顺序 ...

  6. MySQL 基础 ———— SQL语句的执行顺序与 LIMIT 子句

    引言 到目前为止,已经总结了常见的SQL子句,包括 SELECT .FROM.JOIN ... ON.WHERE.GROUP BY.HAVING.ORDER BY. 虽然SQL的书写顺序是固定的,但在 ...

  7. sql语句的执行顺序以及流程(最新,最全,直接用)

    熟练掌握sql语句的执行顺序,才能避免编程中各种bug和错误. 文章目录 一.Select 语句完整的执行顺序 1.from 子句组装来自不同数据源的数据+(ON过滤器)或(JOIN 添加外部行): ...

  8. 数据库:SQL语句的执行顺序,及每一步的详细解释

    一.SQL语句的执行顺序举例(sqlServer版): (8) SELECT (9) DISTINCT (11) <TOP_specification> <select_list&g ...

  9. hive 把mysql语句执行_Hive SQL 语句的执行顺序

    提示 Hive SQL 教程 编写中,使用过程中有任何建议,提供意见.建议.纠错.催更加微信 sinbam. 当我们写了一个 sql,但是执行起来很慢,这时如果我们知道这个sql的底层执行流程是怎样的 ...

最新文章

  1. [转]SQL Server开发技巧
  2. 2017-6-3 jQuery 事件 DOM操作
  3. hdu 4336 Card Collector
  4. python怎么计算时间_python怎么计算若干分钟后是第几天,星期几
  5. 【星球知识卡片】模型蒸馏的核心技术点有哪些,如何对其进行长期深入学习...
  6. MySQL高级 - 查询缓存 - 配置参数
  7. linux内核体系学习路径_Linux内核分析(一)linux体系简介|内核源码简介|内核配置编译安装...
  8. Scikit-learn 更新至0.24版,这10个新特性你需要了解
  9. IDEA build时出现Artifact contains illegal characters的解决
  10. The Most Important Skill for Software Architects
  11. JAVA入门_工具类_书籍借阅日期计算
  12. 下载IDEA - 2020.1以及安装IntelliJ IDEA
  13. 一天搞懂深度学习(李宏毅)-学习笔记
  14. multiply defined
  15. php 图片抠图,php imagick api蒙板抠图
  16. java 手机端开发步骤_移动端页面开发流程
  17. 学习制作FlappyBird时遇到的问题
  18. 线上3D产品展示的方式
  19. Shell语言(一)
  20. uni-app 微信支付

热门文章

  1. 名人尿炕被人发现后怎么办?
  2. 上周回顾:赛门铁克失足 微软开源对骂
  3. 【知识发现】基于物品的协同过滤推荐算法python实现
  4. 《软件加密与解密》第三版学习日志一
  5. 真正的编程高手-----激励计算机专业的大学生
  6. linux空洞目录,学习笔记:linux之文件空洞
  7. uni-app 修改富文本信息中的图片样式
  8. 初始化列表||类对象作为类成员|| 静态成员
  9. Sql Injection 注入攻击
  10. Python 技术篇-pip安装的python库缓存位置查看方法,如何查看python库源码