SQL SERVER 2008用Select操作处理数据(二)——查询语句的逻辑流

    考虑SQL DML(Data Manipulation Language 数据操控语言)的最好方法是了解查询的逻辑流。由于SQL是一种声明性语言,逻辑流可能是(也可能不是)SQL SERVER的查询处理器用于执行查询的实际物理流。逻辑流也不等于查询语法。不管怎样,还是建议按下列顺序考虑查询。


下面是查询逻辑流的详细说明。请注意:除了第(4)步,每一步都是可选的。

(1)[FROM]:如SELECT语句的FROM部分所指定的那样,查询以组装寝数据集开始。

(2)[WHERE]:筛选处理实际上是只选择那些符合标准的行的WHERE子句。

(3)[Aggregations]SQL可以选择性地对数据集执行聚合,如求平均值,按列中的值对数据分组及筛选组。

(4)列表达式:处理SELECT列,并计算任何表达式。

(5)[ORDER BY]:根据ORDER BY子句对结果进行排序。

(6)[OVER]:窗体函数和排名函数通过与其他聚合函数一起使用可以提供结果的单独排序的视图。

(7)[DISTINCT]:从结果集中删除任何重复的行。

(8)[TOP]:选择行后,执行计算,并将数据按所需的顺序排序,这样SQL将输出限定为前几行。

(9)[INSERTUPDATEDELETE]:查询的最后逻辑步骤是将数据修改操作应用到查询结果。

(10)[OUTPUT]:可以选择插入的和删除的虚拟表(通常仅和触发器一起使用)并返回给客户端,插入到表中或作为外部查询的数据源。

(11)[UNION]:使用UNION命令可以合并多个查询的结果。

随着SQL SELECT命令越来越复杂,如何考虑逻辑流也变得越来越复杂。在各种来源中,会发现SQL MPV看待逻辑流的方式的细微差别。

由于我们开始考虑SQL SELECT语句,面不是图形用户界面,因此了解SELECT的流程以及如何读取查询计划,有助于考虑并开发疑难的查询。

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

掌控自身命运

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值