基础的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. nginx的HTTP模块编写
  2. biostar handbook: 第一周笔记汇总+第二周任务布置
  3. 调用webservice 设置超时时间
  4. Redis数据结构以及对应存储策略
  5. java点赞功能实现_JavaWeb中点赞功能的实现及完整实例
  6. 线性结构 —— 单调栈与单调队列
  7. 《温故而知新》JAVA基础四
  8. 如何获得线程对象,获得Thread对象,得到线程对象,根据线程名获得线程对象,多线程取得线程对象...
  9. 图解TCPIP-MIME
  10. H264 STAP-A解包代码(测试通过)
  11. 下列软件包有未满足的依赖关系,依赖: libxxx(= 2.2.10) 但是 2.3.0正要被安装
  12. 279. 完全平方数
  13. STEP 7-Micro/WIN SMART使用小技巧(持续更新)
  14. AUTOSAR--UDS诊断报文
  15. 活动网络——用顶点表示活动的网络AOV和拓扑
  16. .nav ul .mall a:hover 是什么意思
  17. Linux 常见问题
  18. How to Fix Microsoft Teams Error caa70004
  19. COleDateTime SYSTEMTIME CTime
  20. 如何更聪明地学习:20种让你更高效学习的科学方法

热门文章

  1. 由于应用universal link校验不通过_垃圾吊称重校验砝码2000kg市场行情分析
  2. PHP框架编写和应用知识点,写PHP框架需要具备那些知识?
  3. win10创建新的计算机用户名和密码忘了,Win10 2004中要使用本计算机用户必须输入用户名和密码选项不见了如何恢复?...
  4. java 从mysql 导出到excel_JAVA实现在数据库导出到EXCEL并下载
  5. 测试opencv-CUDA是否安装成功简单程序
  6. linux 程序输出 logo,Linux下制作logo并显示到开发板上
  7. 原创,自己做的一个简单实用的提示小插件,兼容性很好,基本上都兼容!
  8. C++_类和动态内存分配2-改进后的String类
  9. 译-在Python正则模式中search()和match()的区别是什么?
  10. springmvc 将post转换为delete,put