sqlserver查询分析器执行sql语句顺序

完整内容查询:http://www.cnblogs.com/MR_ke/archive/2011/05/29/2062085.html#commentform


一:查询的逻辑执行顺序

(1) FROM < left_table>

(3)< join_type> JOIN < right_table>  (2)ON < join_condition>

(4) WHERE <where _condition>

(5) GROUP BY < group_by_list>

(6) WITH { cube | rollup}

(7) HAVING < having_condition>

(8) SELECT (9) DISTINCT (11) < top_specification>  <select _list>

(10) ORDER BY < order_by_list>


二:执行顺序 

1.FROM:对FORM子句中前两个表执行笛卡尔积生成虚拟表vt1

2.ON:对vt1表应用ON筛选器只有满足< join_condition>为true的行才被插入vt2

3.OUTER(join):如果指定了OUTER JOIN 保留表(preserved table)中未找到的行将行作为外部行添加到vt2生成vt3,如果from包含两个以上表则对上一个联结生成的结果表和下一个表重复执行步骤1和步骤2直至结束

4.WHERE:对vt3应用WHERE筛选器只有使<where_condition>为true的行才被插入vt4

5.GROUP BY:按GROUP BY 子句中的列列表对vt4中的行分组生成vt5

6.CUBE | ROLLUP:把超组(supergroups)插入vt5 生成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,并返回调用者。



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、支持绝大部分数据库,包括 大型数据库Oracle,Sybase(包括SQL AnyWhere),DB2,MS_SQL 中型数据库MS_Access,MySQL 桌面型数据库Paradox,DBF系列数据库,MS_Execl,Text 其他支持SQL 92标准的数据库 2、数据库的连接采用ADO连接,因此无需安装和卸载 3、支持SQL查询语句绝大部分语法 3.1 选择字段 3.1.1 Select [All] [Distinct]; 3.1.2 特殊语法,记录条数限定Top(MS_SQL),Rownum(Oracle), Limit(MySQL),Set RowCount(Sybase)) 3.1.3 字段表达式或者计算字段 3.2 选择表 (From) 3.3 条件筛选 (Where) 3.4 分组 (Group By) 3.5 组内条件 (Having) 3.6 排序 (Order By) 3.7 数据表的内连接、外连接 3.7.1 SQL 92 标准:Inner Join、Left Join、Right Join、Full Join, 3.7.2 特殊语法:*=、=*、*=*(MS_SQL,Sybase),(+)(Oracle) 3.8 联合 (Union [All],Minus,Intersect) 3.9 字段别名,数据表别名 3.10 SQL查询表,内嵌SQL子句 4、粘贴字段、系统函数 5、SQL查询语句反向分析, 无论多么复杂的语句,都能分析得出来 包括上面提到的所有SQL语法 6、SQL文件拖放,然后反向分析 7、数据库视图创建和重建(目前仅支持Oracle,Sybase,MS_SQL) 8、附加Delphi 5和Delphi 6的控件包,支持Delphi 5,6开发环境 9、SQL语句智能换行 10、其他功能 10.1 SQL文件保存、打开 10.2 支持多个数据库连接 10.3 SQL语句关键词高亮度显示 10.4 简单SQL查询语句转换为Delete,Update,Insert语句
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值