邮件订阅
5ucms插件,如何在 SQL Server 中使用相关子查询
作者: 来源: 日期:2018/5/15 18:36:01 浏览量:2(滞后) 人气:LOADING...(实时) 【

5ucms插件,如何在 SQL Server 中使用相关子查询

子查询是指将一条SQL Sever语句嵌入到另一条SQL Sever语句中。数据库引擎将子查询做为虚表执行查询操作。子查询可做为连接语句中的一个表,可做为选择语句中的一个值,也可以是SQL Sever查询子句,还可以是SQL Sever查询子句的字句,与数据操作语句混合在一起。

 

子查询的执行依赖于嵌套查询。查询树从最里层开始,一层一层向外执行。高层的嵌套查询可以访问低层嵌套查询的结果。

 

什么是相关子查询?

 

与经典子查询不同,相关子查询依赖于外部查询。外部查询和子查询是有联系的,尤其在子查询的WHERE语句中更是如此。相关子查询的工作方式是:在子查询中找到外部查询的参考时执行外部查询,此时将结果返回给子查询。然后在外部查询返回的结果集上执行子查询操作。

 

相关子查询的执行性能

 

由于相关子查询中的子查询在外部查询返回的结果集上进行执行,其效率肯定下降。子查询的性能完全依赖于查询和有关的数据。但是,如果相关子查询的语句写得很有效率,则其执行性能能够胜过那些使用几个连接和临时表的程序。

 

一个示例

 

相关子查询的一个主要优点在于,它能完成传统SQL Sever查询不同解决的问题。例如,使用相关子查询可以轻易完成这样的任务:获得连续的销售总计结果或每一个州中出售最多的商品。

 

下面的例子说明了如何使用相关子查询创建运行总计的过程。首先,运行下面的脚本创建一个例表:

 

 

CREATE TABLE SalesHistory            (SaleID INT IDENTITY(1,1),            Product VARCHAR(30),            SaleDate SMALLDATETIME,            SalePrice M> 

 

现在,这个表保存了这些数据字段,让我们运行脚本程序向其中添加一些记录。Listing A中显示了向表中输入的300条记录的程序,其中SalePrice有些变化。虽然SalePrice的变化不大,但是也足以说明相关子查询如何工作。接下来,运行Listing B中的相关子查询程序创建销售报表。

 

在报表中引入的连续的销售总计查询即是相关子查询。对于表中的每种产品,相关子查询重述了其结果集,并且在将结果返回到结果集之前,为每一种售出产品的SalePrice进行加和操作。

 

试一试

 

试着运行一下上面的例子,并且玩玩这些代码。对于我来说,可以从例子中学到很多新技术。如果已经精通了相关子查询的原理,则可以考虑让自己进入数据库开发者的高层梯队。

 

Tim Chapman是SQL Server数据库管理员,现在为 Louisville,KY的一家银行工作,他拥有7年的IT工作经验。


选择5ucms.org 选择未来

本站推荐: 5ucms模板下载 5ucms插件下载 仿站联系Q3876307       [复制给好友] [打印] [关闭] [返回] [顶部]
上一篇:5ucms模版,如何用范围连接查找值
下一篇:5ucms插件,如何用SQL语句来判断已知表是否存在
本站声明:本网站所载文章等内容,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权及其它问题,请在30日内与本网联系(Email:3876307#qq.com),我们将在第一时间删除内容。若原创内容转载请注明出处。
5ucms插件,如何在 SQL Server 中使用相关子查询的关键词:
评论信息
相关分类
本周热门
本月热门
关于我们 - 版权/免责 申明 - 建站服务 - 网站地图 - 稿件投递 - 联系我们 - 5ucms
Copyright © 2008-2015 www.5ucms.org