欢迎来到天天文库
浏览记录
ID:6336582
大小:34.00 KB
页数:6页
时间:2018-01-10
《select语句完整的执行顺序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、SQLSelect语句完整的执行顺序:1、from子句组装来自不同数据源的数据;2、where子句基于指定的条件对记录行进行筛选;3、groupby子句将数据划分为多个分组;4、使用聚集函数进行计算;5、使用having子句筛选分组;6、计算所有的表达式;7、使用orderby对结果集进行排序。另外:一个查询语句各个部分的执行顺序:--8)SELECT(9)DISTINCT(11)--(1)FROM--(3) 2、pe>JOIN--(2) ON--(4)WHERE--(5)GROUPBY--(6)WITH{CUBE3、ROLLUP}--(7)HAVING--(10)ORDERBYSQLSelect语句完整的执行顺序2008-05-3012:09SQLSelect语句完整的执行顺序:1、from子句组装来自不同数据源的数据;2、where4、子句基于指定的条件对记录行进行筛选;3、groupby子句将数据划分为多个分组;4、使用聚集函数进行计算;5、使用having子句筛选分组;以下结论是通过在SqlServer2000上的实验得出的结论,也可通过查看估计的执行计划(Ctrl+L)来查看执行顺序。1.先执行等号(=)左边是变量的表达式(A类),再执行等号(=)左边是列名的表达式(B类)。例:updatetablenamesetcolumnName=@variable,@variable=@variable+1先执行@variable=@variable+5、1,再执行columnName=@variable2.如果有多个A类(或B类)表达式,按从左到右顺序执行A类(或B类)表达式。例:updatetablenamesetcolumnName=@variable,@variable=@variable+1,@variable=2*@variable先执行@variable=@variable+1,再执行@variable=2*@variable,最后执行columnName=@variable3.列名所代表的值永远是原值。例:updatetablenamesetcolum6、nName=colunName+1,columnNameBagroupby 在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。 在带有groupby子句的查询语句中,在select列表中指定的列要么是groupby子句中指定的列,要么包含聚组函数 selectmax(sal),jobe7、mpgroupbyjob; (注意max(sal),job的job并非一定要出现,但有意义) 查询语句的select和groupby,having子句是聚组函数唯一出现的地方,在where子句中不能使用聚组函数。selectdeptno,sum(sal)fromempwheresal>1200groupbydeptnohavingsum(sal)>8500orderbydeptno;当在gropuby子句中使用having子句时,查询结果中只返回满足having条件的组。在一个sql语句中可以有where子句和h8、aving子句。having与where子句类似,均用于设置限定条件where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。查询每个部门的每种职位的雇员数selectdeptno,job,count(*)fromempgroupbydeptno,job;OracleS9、QL性能优化技巧1.选用适合的ORACLE优化器 ORACLE的优化器共有3种 A、RULE(基于规则)b、COST(基于成本)c、CHOOSE(选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS。你
2、pe>JOIN--(2) ON--(4)WHERE--(5)GROUPBY--(6)WITH{CUBE
3、ROLLUP}--(7)HAVING--(10)ORDERBYSQLSelect语句完整的执行顺序2008-05-3012:09SQLSelect语句完整的执行顺序:1、from子句组装来自不同数据源的数据;2、where
4、子句基于指定的条件对记录行进行筛选;3、groupby子句将数据划分为多个分组;4、使用聚集函数进行计算;5、使用having子句筛选分组;以下结论是通过在SqlServer2000上的实验得出的结论,也可通过查看估计的执行计划(Ctrl+L)来查看执行顺序。1.先执行等号(=)左边是变量的表达式(A类),再执行等号(=)左边是列名的表达式(B类)。例:updatetablenamesetcolumnName=@variable,@variable=@variable+1先执行@variable=@variable+
5、1,再执行columnName=@variable2.如果有多个A类(或B类)表达式,按从左到右顺序执行A类(或B类)表达式。例:updatetablenamesetcolumnName=@variable,@variable=@variable+1,@variable=2*@variable先执行@variable=@variable+1,再执行@variable=2*@variable,最后执行columnName=@variable3.列名所代表的值永远是原值。例:updatetablenamesetcolum
6、nName=colunName+1,columnNameBagroupby 在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。 在带有groupby子句的查询语句中,在select列表中指定的列要么是groupby子句中指定的列,要么包含聚组函数 selectmax(sal),jobe
7、mpgroupbyjob; (注意max(sal),job的job并非一定要出现,但有意义) 查询语句的select和groupby,having子句是聚组函数唯一出现的地方,在where子句中不能使用聚组函数。selectdeptno,sum(sal)fromempwheresal>1200groupbydeptnohavingsum(sal)>8500orderbydeptno;当在gropuby子句中使用having子句时,查询结果中只返回满足having条件的组。在一个sql语句中可以有where子句和h
8、aving子句。having与where子句类似,均用于设置限定条件where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。查询每个部门的每种职位的雇员数selectdeptno,job,count(*)fromempgroupbydeptno,job;OracleS
9、QL性能优化技巧1.选用适合的ORACLE优化器 ORACLE的优化器共有3种 A、RULE(基于规则)b、COST(基于成本)c、CHOOSE(选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS。你
此文档下载收益归作者所有