sql查询的执行流程(sql的查询处理分为哪几个阶段,分别完成什么工作)

本文主要介绍sql查询的执行过程(sql的查询处理分为哪些阶段 分别完成哪些工作),下面一起看看sql查询的执行过程(sql的查询处理分为哪些阶段 分别完成哪些工作)相关资讯。
在大型编程语言中,代码是按照编码顺序处理的,而在sql语言中,第一个处理的子句是从属子句。虽然select语句是第一次出现,但它几乎总是最后处理。每一步都生成一个虚拟表作为下一步的输入。这些虚拟表不提供给调用者(客户端应用程序或外部查询),表的最后一步将返回给调用者。如果术语中没有指定查询,将跳过相应的步骤。下面是对sql server 2000和sql server 2005的逻辑步骤的简单描述。复制代码的代码如下:(8)select(9)explicit(11)(1)add from left _ table {(3)(2)about(4)where(5)by group(6)(7)have(10)顺序逻辑查询处理过程简介1.from:执行笛卡尔积(1 .只有那些真正的电线入vt2。3.outer (join):如果找到匹配的外部行,并按照外部连接(相对于cross(内部连接)或join(保存:表和保留表用左边的外部连接表标记,右边的外部连接表用保留表标记,两个完全外部连接的表左边的标记不是paul)指定的那样添加到vt2和vt3。如果from子句在一个连接表中包含两个以上的表,并且当这些表重复步骤1到3直到所有的表都被处理完时,就会生成结果。4 .其中:应用于滤波器vt3。只有行才构成真正的插入vt4。5 . group:group vt4行根据group by子句中的列列表生成vt5。6。cube | summary:将超群插入vt5生成vt6。7.having:使用带过滤器的vt6。只有集体才能真正插入vt7。8.select:处理选择列表,处理各种累加函数,生成vt8。9.distinct:删除重复的行vt8以生成vt9。10.order:根据orderby子句中的列列表对vt9中的行进行排序,并生成游标(vc10)。11.top:选择从vc10开始的行中指定的数量或比例,生成表vt11并返回给调用者。注意:步骤10,根据列表中的顺序,在子句中返回排名,光标返回vc10。这一步是第一步,也是唯一的一步。您可以使用列别名来选择列表。这一步与其他步骤不同,它不返回有效的表,而是返回一个cursor.sql基于集合论,集合不预先对其行进行排序;它只是一个逻辑组的成员,成员的顺序无关紧要。查询排序表可以返回一个对象,包括指向组织在特定物理order.ansi行调用的对象的指针。理解这一步是正确理解sql的基础。因为此步骤不返回表(而是返回光标),所以使用order by子句的查询不能用作表。表表达式包括视图、内联表值函数、子查询、派生表和公共表达式,结果必须返回给客户端应用程序,希望获得一个物理记录。例如,下面的派生表查询无效,导致错误:复制代码如下:select * from(select row,customerid from orderid for order)d下面的视图也会生成错误。复制代码如下:将视图my_view创建为selection * from order with row错误信息:glutamate 1033,level 15,status 1,program my_viewasselect,lin测试表(名为varchar(10),(10),当然varchar int的一部分),插入tb值( 张三 , 语言与文学。;,74),插入tb值( 张三,数学,83),插入tb值( 张三 , 物理与数学。;, 93).74)插入tb值(李四,数学,84)插入tb值(李四 , 物理与数学。;,94)去——sql server 2000静态sql,只指三门课(以下内容相同)。选择名称作为名称,max(当是case类时,则分数0结束)、max(案例课程数学以分数0结束)、max(案例课程物理以分数0结束)、物理西坝组名称。
了解更多sql查询的执行过程(sql的查询处理分为哪些阶段 分别完成哪些工作)相关内容请关注本站点。