`
huangyongxing310
  • 浏览: 499197 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

sql执行顺序

 
阅读更多
sql执行顺序

1.第一个被处理的子句是FROM子句
2.每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。

其中select和from是必须的,其他关键词是可选的,这六个关键词的执行顺序
与sql语句的书写顺序并不是一样的,而是按照下面的顺序来执行
from--where--group by--having--select--order by,
from:需要从哪个数据表检索数据
where:过滤表中数据的条件
group by:如何将上面过滤出的数据分组
having:对上面已经分组的数据进行过滤的条件
select:查看结果集中的哪个列,或列的计算结果
order by :按照什么样的顺序来查看返回的数据


from 子句--执行顺序为从后往前、从右到左
where子句--执行顺序为自下而上、从右到左


group by--执行顺序从左往右分组
having 子句----很耗资源,尽量少用
select子句--少用*号,尽量取字段名称。
order by子句--执行顺序为从左到右排序,很耗资源

嵌套查询是以最外的作为一个表并每次执行子查询的方式来完成的。


EXISTS 执行顺序
select * from a where a.s_status=1 and exists (select orderid from b where a.orderid=b.orderid)

exists执行顺序

1.首先exists 返回的是true或false

2.查询一条a的数据,会去执行exists 若返回true则存在结果集中,再执行a的下一条数据,直到a的数据执行完

3.exists 里的数据是怎么执行的呢?只要满足条件就会返回true,没必要把b表中的数据都查询一遍





select * from table where patindex('%字符%',a)>0 
select * from table where charindex('字符',a)>0
经测试这两种方法比LIKE速度要快。
select * from table where a like '%字符%' 



非相关子查询是独立于外部查询的子查询,子查询总共执行一次,执行完毕后将值传递给外部查询。
相关子查询的执行依赖于外部查询的数据,外部查询执行一行,子查询就执行一次。


相关子查询,先执行主查询再执行子查询

在关联子查询中,对于外部查询返回的每一行数据,内部查询都要执行一次。另外,在关联子查询中是信息流是双向的。外部查询的每行数据传递一个值给子查询,然后子查询为每一行数据执行一次并返回它的记录。然后,外部查询根据返回的记录做出决策。


非相关子查询是独立于外部查询的子查询,子查询执行完毕后将值传递给外部查询


1.FROM:对FROM子句中前两个表执行笛卡尔积 生成虚拟表VT1
2.ON:对VT1表应用ON筛选器 只有满足 <join_condition>为真的行才被插入VT2
3.OUTER(JOIN):如果指定了OUTER JOIN 保留表(preserved table)中未找到的行将行作为外部行添加到VT2 生成T3
如果FROM包含两个以上表 则对上一个联结生成的结果表和下一个表重复执行步骤1和步骤3 直接结束
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 并返回调用者


in 的可以用inner join 的方式进行处理




























分享到:
评论

相关推荐

    sql执行顺序大总结

    SQL 执行顺序大总结 SQL 执行顺序是一个非常重要的概念,对于任何一个 SQL 开发者来说都非常重要。今天,我们将深入探讨 SQL 执行顺序的每一个步骤,从 FROM 到 SELECT,了解每一个步骤的执行顺序和细节。 FROM ...

    SQL执行顺序

    SQL执行顺序介绍

    sql语句的顺序是怎么执行的

    Sql语句执行顺序Sql语句执行顺序Sql语句执行顺序Sql语句执行顺序Sql语句执行顺序Sql语句执行顺序Sql语句执行顺序

    SQL语句执行顺序说明

    ### SQL语句执行顺序说明 #### 一、SQL语句准备执行阶段 当SQL语句进入Oracle的库缓存后,为了确保其能够被正确执行,Oracle会经历一系列的检查和准备过程。这一阶段主要涉及以下几个步骤: 1. **语法检查**:...

    SQL Server 查询处理中的各个阶段(SQL执行顺序)示例

    SQL Server 查询处理中的各个阶段,即SQL执行顺序,是数据库管理系统执行SQL语句时的一系列逻辑步骤。这个顺序对于理解查询如何工作以及优化查询性能至关重要。以下是对这些步骤的详细解释: 1. FROM子句:这是查询...

    分组查询GROUP BY的使用与SQL执行顺序的讲解

    分组查询GROUP BY是SQL语言中用于对...总之,理解GROUP BY的使用以及SQL执行顺序对于编写高效、准确的SQL查询至关重要。通过合理运用这些概念,我们可以对大量数据进行有效的分析和处理,从而得出有价值的统计信息。

    NCR_teradata_SQL执行分析

    ### NCR Teradata SQL执行分析 #### 一、Teradata数据分布与主索引(PPI) 在Teradata数据库中,数据分布与主索引(Primary Index, PI)密切相关。这决定了数据如何分布在不同的AMP(Access Method Processor)上,...

    [] - 2023-12-10 一文搞懂SQL执行顺序.pdf

    互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术...

    SQL查询原理及执行顺序

    ### SQL查询原理及执行顺序详解 SQL(Structured Query Language)是一种用于管理关系型数据库的标准语言,其查询原理和执行顺序对于数据库性能优化至关重要。本文将深入探讨SQL查询的执行过程,帮助读者理解如何...

    SQL语句的执行原理及顺序

    了解 SQL 语句的执行顺序可以帮助开发人员更好地优化查询语句,提高数据库性能。 SQL 语句的执行顺序可以分为 11 个步骤: 1. FROM 子句:首先对 FROM 子句中的前两个表执行一个笛卡尔乘积,生成虚拟表 vt1。 2. ...

    SQLServer脚本批量执行工具

    该工具的一个关键特性是能够调整脚本执行顺序。这允许用户根据业务需求或依赖关系定制执行流程,确保脚本按正确的顺序执行,避免因为先执行了依赖于后续脚本的命令而导致错误。 此外,脚本可视化功能为用户提供了一...

    SQL Select语句完整的执行顺序

    ### SQL Select 语句完整的执行顺序 在数据库查询语言(SQL)中,`SELECT`语句是最常用的查询数据的方式之一。正确理解`SELECT`语句的执行顺序对于编写高效、准确的查询至关重要。本文将详细介绍SQL Select语句的...

    sql查询的逻辑执行顺序

    ### SQL查询的逻辑执行顺序详解 #### 一、引言 SQL(Structured Query Language)作为数据库操作的标准语言,在数据检索、管理和分析方面扮演着至关重要的角色。为了更高效地理解和优化SQL查询,了解其背后的执行...

    sql解析顺序

    SQL 语句的解析顺序是一个复杂的过程,它涉及到多个步骤和子句的执行顺序。在这篇文章中,我们将详细地讲述 SQL 语句的解析顺序,包括 FROM、WHERE、GROUP BY、HAVING、SELECT 等子句的执行顺序。 首先,FROM 子句...

    TSQL_Express【批量执行SQL】批量执行sql文件工具

    2. **自定义执行顺序**:对于有依赖关系的脚本,用户可以调整执行顺序,确保脚本按照正确的逻辑顺序运行。 3. **参数化查询**:支持使用参数化查询,使脚本更通用,适应不同的环境和需求。 4. **事务管理**:提供...

    当数据库复杂查询执行顺序与编写顺序原理及sql案例:同时出现了where_group_by_having_order_by的时候_执行顺序和编写顺序

    当同时出现了where_group_by_having_order_by的时候_执行顺序和编写顺序时的用法

    sql和MySQL的语句执行顺序分析

    首先,SQL执行顺序可以概括为以下步骤: 1. FROM:这一阶段,SQL引擎开始处理FROM子句中的表,通常是根据表的大小进行笛卡尔乘积,生成虚拟表VT1。如果只有一个表,则直接使用该表,如果有多个表,则会进行连接操作...

    T-SQL语句执行的顺序

    了解T-SQL语句的执行顺序对于优化查询性能和编写更高效的代码至关重要。以下是对标题和描述中所述知识点的详细说明: 1. **SELECT**: SELECT语句用于从一个或多个表中选取数据。在T-SQL中,这是执行的第一步,它...

Global site tag (gtag.js) - Google Analytics