仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 861|回复: 7
打印 上一主题 下一主题

[学习教程] MSSQL网页编程之怎样利用SQL Server嵌套子查询

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:18:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
提供用于管理、检查、优化数据库操作的管理工具。良多SQLServer程序员对子查询(subqueries)的利用感应狐疑,特别关于嵌套子查询(即子查询中包括一个子查询)。如今,就让我们追根究底地探求这个成绩。
有两种子查询范例:尺度和相干。尺度子查询实行一次,了局反应给父查询。相干子查询每行实行一次,由父查询找回。在本文中,我将重点会商嵌套子查询(nestedsubqueries)(我将在今后先容相干子查询)。
试想这个成绩:你想天生一个卖平垫圈的发卖职员列表。你必要的数据分离在四个表格中:职员.接洽体例(Person.Contact),人力资本.员工(HumanResources.Employee),发卖.发卖定单题目(Sales.SalesOrderHeader),发卖.发卖定单概况(Sales.SalesOrderDetail)。在SQLServer中,你从内压式(outside-in)写程序,但从外压式(inside-out)入手下手思索十分有匡助,便可以一次办理必要的一个语句。
假如从内到外写起,能够反省Sales.SalesOrderDetail表格,在LIKE语句中婚配产物数(ProductNumber)值。你将这些行与Sales.SalesOrderHeader表格毗连,从中能够取得发卖职员IDs(SalesPersonIDs)。然后利用SalesPersonID毗连SalesPersonID表格。最初,利用ContactID毗连Person.Contact表格。
以下为援用的内容:
USEAdventureWorks;
GO
SELECTDISTINCTc.LastName,c.FirstName
FROMPerson.ContactcJOINHumanResources.Employeee
ONe.ContactID=c.ContactIDWHEREEmployeeIDIN
(SELECTSalesPersonID
FROMSales.SalesOrderHeader
WHERESalesOrderIDIN
(SELECTSalesOrderID
FROMSales.SalesOrderDetail
WHEREProductIDIN
(SELECTProductID
FROMProduction.Productp
WHEREProductNumberLIKEFW%)));
GO
这个例子展现了有关SQLServer的几个尽妙事变。你能够发明,能够用IN()参数替换SELECT语句。在本例中,有两次使用,因而创立了一个嵌套子查询。
我是尺度化(normalization)的发热友,只管我不承受其荒唐的长度。因为尺度化具有各类查询而增添了庞大性。在这些情形下子查询就显得十分有效,嵌套子查询乃至加倍有效。
当你必要的成绩分离于良多表格中时,你必需再次将它们拼在一同,这时候你大概发明嵌套子程序就很有效。

如果WHERE子句的查询条件里使用比较操作符LIKE和REGEXP,MySQL只有在搜索模板的第一个字符不是通配符的情况下才能使用索引。比如说,如果查询条件是LIKEabc%‘,MySQL将使用索引;如果查询条件是LIKE%abc’,MySQL将不使用索引。
老尸 该用户已被删除
沙发
发表于 2015-1-19 07:20:26 | 只看该作者
你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。
透明 该用户已被删除
板凳
发表于 2015-1-28 05:33:59 | 只看该作者
所以你总能得到相应的升级版本,来满足你的需求。
柔情似水 该用户已被删除
地板
发表于 2015-2-5 17:24:12 | 只看该作者
其中最有名的应该是row_number了。这个终于解决了用临时表生成序列号的历史,而且SQLServer2005的row_number比Oracle的更先进。因为它把Orderby集成到了一起,不用像Oracle那样还要用子查询进行封装。
活着的死人 该用户已被删除
5#
 楼主| 发表于 2015-2-13 03:57:33 | 只看该作者
再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。
分手快乐 该用户已被删除
6#
发表于 2015-3-3 13:56:20 | 只看该作者
SP4是一个累积性的ServicePack,包含自以前的ServicePack发布以来所有的修补程序(包括MS03-031安全公告)。
冷月葬花魂 该用户已被删除
7#
发表于 2015-3-11 11:33:52 | 只看该作者
以前的DTS轻盈简单。但是现在的SSIS虽然功能强大了很多,但是总是让人感觉太麻烦。看看论坛中询问SSIS的贴子就知道。做的功能太强大了,往往会有很多用户不会用了
飘灵儿 该用户已被删除
8#
发表于 2015-3-26 09:34:47 | 只看该作者
从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-7-3 00:34

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表