基础的SQL执行顺序

SQL语句执行的时候是有一定顺序的。理解这个顺序对SQL的使用和学习有很大的帮助。

1.from

先选择一个表,或者说源头,构成一个结果集。

2.where

然后用where对结果集进行筛选。筛选出需要的信息形成新的结果集。

3.group by

对新的结果集分组。

4.having

筛选出想要的分组。

5.select

选择列。

6.order by

当所有的条件都弄完了。最后排序。

带连接的SQL语句执行顺序(以Left Join为列)

我的理解是这样,SQL语句中无论是否连接的其他表。 无论如何都要先形成一个结果集。后面的顺序不变!

只不过使用连接时,形成结果集合的方式略有不同。这个和 Left Join的实现原理有关。

select a.name,b.name

from T_left a            //1

Left Join T_Right b   //3

ON  a.id = b.id         //2

使用Left Join 形成结果集的方式是这样的。

1. 首先对From子句中的前两个表,执行笛卡尔积运算。运算结果 形成一个结果集合。

2. ON按条件,对上边的结果集,进行筛选,形成新的结果集。

3. 以左连接为例,如果T_left中存在未匹配到的行。那么把T_left中的这几行以外部行的形式加到上边的结果集中形成新的结果集。

4. 如果存在多张表,重复1~3过程!

转载于:https://www.cnblogs.com/mcad/p/4207033.html

带Left Join的SQL语句的执行顺序相关推荐

  1. 2021-07-01带Left Join的SQL语句的执行顺序

    select a.name,b.name from T_left a            //1 Left Join T_Right b   //3 ON  a.id = b.id         ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. zlggui菜单12864_lcddrive.h
  2. c++十进制转二进制_二进制与十进制如何互相转换?
  3. 干货 | 带你理解对比学习损失函数的性质以及温度系数的作用
  4. 【Android笔记】Unable to execute dex: Multiple dex files define 解决方法
  5. qml 不刷新 放大还原_【显示器选择详解】你的电脑能否带动高分辨率,高刷新率显示器?...
  6. Android学习之基础知识十一 —运用手机多媒体
  7. Clean Code 《代码整洁之道》前四章读书笔记
  8. [转载]MySQL数据库增长用户权限GRANT/INSERT INTO user VALUES/FLUSH
  9. 用Python绘制了若干张词云图,惊艳了所有人
  10. 树莓派linux负载均衡集群,在树莓派2上Nginx并发1W到底有多难
  11. react--划分Reducer
  12. 数学建模学习笔记——预测类型1
  13. 【初探篇】申请阿里云免费SSL证书并配置https访问实战
  14. office365服务器没有响应,修复:由于长时间运行的脚本,Office 365没有响应
  15. 普通用户不能登录linux图形界面,只有root用户可以登录到图形界面
  16. 数学之路(3)-数据分析(5)
  17. emplace 和 emplace_back
  18. 如何在MySQL中创建新的数据库(windows下)
  19. java扫雷程序,Java扫雷程序,初试Java-JSP教程,Java技巧及代码
  20. mybatis spring springMVC

热门文章

  1. 《LeetCode力扣练习》剑指 Offer 05. 替换空格 Java
  2. Java数据结构2:堆排序思考
  3. visual studio 工具箱(选项卡、无控件、灰图标)
  4. linux shell 脚本 查找文件,Linux Shell在目录下使用for循环结合if查找文件的巧用
  5. double 导出txt保留两位_使用Jade“精修”XRD图谱并导出数据
  6. 英伟达验证图片加载不出来_让大卫雕塑跳舞、蒙娜丽莎说话,英伟达视频合成有如此多「骚操作」...
  7. go语言的iota是什么意思_关于Golang中的iota
  8. pycharm安装numpy
  9. cuda合并访问的要求_在 CUDA C / C ++ 中使用共享内存
  10. IO设备在OS中的权衡