Microsoft SQL Server 2005技术内幕:T-SQL查询
基本信息
- 作者: (美)Itzik Ben-Gan Lubor Kollar Dejan Sarka [作译者介绍]
- 译者: 赵立东 唐灿 刘波
- 出版社:电子工业出版社
- ISBN:9787121051555
- 上架时间:2008-1-14
- 出版日期:2008 年1月
- 开本:16开
- 页码:599
- 版次:1-1
- 所属分类:
计算机 > 数据库 > SQL Server
合作专区 > 微软技术图书 > 微软数据库
编辑推荐
SQL Server 2005微软官方权威参考书.
公球公认SQL Server 2005 经典著作..
数据库“铁人”、微软MVP胡百敬先生鼎力推荐
微软SQL Server 总部Principal Group 项目经理朱凌志鼎力推荐
内容简介回到顶部↑
本书是inside microsoft sql server 2005系列四本著作中的一本。本书及其续篇——《microsoft sql server 2005技术内幕:t-sql程序设计》介绍了sql server 2005中高级t-sql查询、查询优化及编程相关的知识。这两本书侧重于解决实践中的常见问题,并讨论了解决这些问题的方法。它们将向你揭示基于集合(set-based)查询的强大威力,并解释为什么它比使用游标的过程化编程(procedural programming)更具优势。同时,它还会教你识别使用基于游标解决方案与基于集合解决方案的优劣。
书中还讲述了其他几种争议较多的构造(camstruct)——如临时表、动态执行、xml和.net集成——它们在具有强大功能的同时,也具有极大的风险。
本书适合于需要编写或检查t-sql代码的有经验的t-sql程序员和数据库专业人员。读者可从中学到大量精湛的技巧,这些技巧会充实您的工具箱和编码技能,并让您顺利地开发出高效的解决方案。
书中还讲述了其他几种争议较多的构造(camstruct)——如临时表、动态执行、xml和.net集成——它们在具有强大功能的同时,也具有极大的风险。
本书适合于需要编写或检查t-sql代码的有经验的t-sql程序员和数据库专业人员。读者可从中学到大量精湛的技巧,这些技巧会充实您的工具箱和编码技能,并让您顺利地开发出高效的解决方案。
作译者回到顶部↑
本书提供作译者介绍
Itzik Ben-Gan是Solid Quality Learning的首席导师和创始人。他从1999年开始便一直是SQL Server方面的Microsoft MVP,在世界各地讲授 T-SQL查询、编程和查询优化相关的课程,并提供相关咨询服务。他在SQL Server Magazine和MSDN上发表了多篇文章,并被邀请在许多专题会议上做过报告,包括TechEd、DevWeek、PASS和SQL Server Connections。
.. << 查看详细
.. << 查看详细
目录回到顶部↑
序
前言
致谢
引言
本书的组织
系统要求
安装示例数据库
更新
代码示例
本书支持
第1章 逻辑查询处理
逻辑查询处理中的各个阶段
逻辑查询处理阶段简介
customers/orders场景下的示例查询
逻辑查询处理步骤详解
步骤1:执行笛卡尔乘积(交叉联接)
步聚2:应用on筛选器(联接条件)
步骤3:添加外部行(outer row)
步骤4:应用where筛选器
步骤5:分组
前言
致谢
引言
本书的组织
系统要求
安装示例数据库
更新
代码示例
本书支持
第1章 逻辑查询处理
逻辑查询处理中的各个阶段
逻辑查询处理阶段简介
customers/orders场景下的示例查询
逻辑查询处理步骤详解
步骤1:执行笛卡尔乘积(交叉联接)
步聚2:应用on筛选器(联接条件)
步骤3:添加外部行(outer row)
步骤4:应用where筛选器
步骤5:分组
译者序回到顶部↑
想必很多人都听说过该书的上一版——《Microsoft SQL Server 2000技术内幕》,这是一本在SQL Server领域被公认的经典之作。随着SQL Server 2005的发布,该书的最新版也问世了,然而就像《SQL Server 2000技术内幕》的作者Kalen Delaney所说的,SQL Server 2005太庞大了,以至于一本书无法容纳这么多的内容。因此,《SQL Server 2005技术内幕》被分成4册单独出版,同时她邀请了Itzik负责其中的T-SQL部分:T-SQL查询和T-SQL程序设计。.
作为《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》和《Microsoft SQLServer 2005技术内幕:T-SQL查询》这两本书的译者,我有幸先睹为快,作者深厚的技术功底令我折服,以至于在完成了《Microsoft SQL Server2005技术内幕:T-SQL程序设计》的翻译工作后又接手《Microsoft SQL Server 2005技术内幕:T-SQL查询》一书。我相信,你在阅读本书时能感觉出作者在书中所倾注的心血。本书除了囊括大量鲜为人知的技术内幕外,你还可以阅读到许多作者的经验之谈和一些非常实用的技巧。
在《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》的第3章中,作者把T-SQL程序员的职业生涯分成三个阶段,其中的第三个阶段是最高境界,同时也是知识和经验最丰富最成熟的阶段。用作者的话说是能悟出“空”的状态,按我的理解是应该达到了“手中无剑,心中也无剑”的状态。毫无疑问,他把带领读者进入最高境界作为本书的目标,书中的各个方面都凸显出了这一点。不过,建议读者在阅读这两本书之前最好具备T-SQL查询的一些基础知识。如果大家允许,我想引用易中天老师的一句话来形容此书,该书系醇酒一坛, “度数”略高,不胜酒力者慎之!
本书的叙述风格正是我喜欢的那种,在介绍某项特性时,大都按这样的思路进行:先简要介绍该特性,紧接着深入分析其原理和适用的场景,然后与上一版本的该特性相比有什么优势,最后辅以大量示例,其中还有许多未包含在正式文档中的内幕消息。这充分显示了作者在技术和写作上的自信。..
书中大量精致的示例令人拍手叫绝,它们不仅很好地演示了相关的理论知识,而且其中的大部分示例都非常实用,所解决的问题都是很常见很棘手的问题,我个人就比较喜欢其中的利用辅助表解决问题的方法。同时,仔细研究这些示例中的算法还可以锻炼自己的逻辑思维,这有助于在实际工作中解决一些难题。从某种意义上讲,也许这种锻练比你从书中学到的技术更重要。
一向追求完美的Itzik Ben-Gan为保证本书的质量,对于SQL Server 2005中新增的一部分特性,他还专门邀请了相关领域的权威专家,这些专家在各自领域对SQL Server的理解无人能及,他们对这些特性描述的深入程度无须多说。他们的加盟使本书更为精彩,更为完美。
对于我来说,翻译这样一本经典之作是一种荣誉,也是一种压力。从一开始我便诚惶诚恐,不敢怠慢。我要特别感谢本书的作者ItzikBen-Gan和两位特约作者Dejan Sarka和Roger Wolter,在翻译的过程中,他们给了我很大的帮助,对我所提出的诸多问题都做了详细的解释。他们的技术让我敬佩,他们的热心以及对读者负责的态度让我感动。在这里,我还要感谢胡百敬老师,通过和他的探讨与交流,使我对一些技术细节有了更深的认识。此外,因我在交稿后反复修改,给本书的编辑杨福川先生和蔡勇先生增加了很多工作。最后,感谢我的同事何明耀和胡永亮,他们为我提出了一些非常好的建议。
《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》一书由我一人翻译,《Microsoft SQL Server 2005技术内幕:T-SQL查询》一书由我、唐灿、刘波共同翻译,唐灿和刘波负责翻译其中的4、5章,我负责翻译其余所有章节,并审校全书。尽管我们已尽最大努力保证翻译质量,但因水平有限,疏漏和错误在所难免,希望广大读者能够提出宝贵意见。另外,我还为这两本书的中文版创建了一个专门的论坛,网址为:http://groups.google.com/grour/insidetsql。届时,我会在上面及时公布勘误及相关信息,希望能与大家一起讨论与该书有关的技术性问题。当然,你也可以通过我的电子信箱lidong6@gmail.com与我取得联系。...
赵立东
2007年5月于北京
作为《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》和《Microsoft SQLServer 2005技术内幕:T-SQL查询》这两本书的译者,我有幸先睹为快,作者深厚的技术功底令我折服,以至于在完成了《Microsoft SQL Server2005技术内幕:T-SQL程序设计》的翻译工作后又接手《Microsoft SQL Server 2005技术内幕:T-SQL查询》一书。我相信,你在阅读本书时能感觉出作者在书中所倾注的心血。本书除了囊括大量鲜为人知的技术内幕外,你还可以阅读到许多作者的经验之谈和一些非常实用的技巧。
在《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》的第3章中,作者把T-SQL程序员的职业生涯分成三个阶段,其中的第三个阶段是最高境界,同时也是知识和经验最丰富最成熟的阶段。用作者的话说是能悟出“空”的状态,按我的理解是应该达到了“手中无剑,心中也无剑”的状态。毫无疑问,他把带领读者进入最高境界作为本书的目标,书中的各个方面都凸显出了这一点。不过,建议读者在阅读这两本书之前最好具备T-SQL查询的一些基础知识。如果大家允许,我想引用易中天老师的一句话来形容此书,该书系醇酒一坛, “度数”略高,不胜酒力者慎之!
本书的叙述风格正是我喜欢的那种,在介绍某项特性时,大都按这样的思路进行:先简要介绍该特性,紧接着深入分析其原理和适用的场景,然后与上一版本的该特性相比有什么优势,最后辅以大量示例,其中还有许多未包含在正式文档中的内幕消息。这充分显示了作者在技术和写作上的自信。..
书中大量精致的示例令人拍手叫绝,它们不仅很好地演示了相关的理论知识,而且其中的大部分示例都非常实用,所解决的问题都是很常见很棘手的问题,我个人就比较喜欢其中的利用辅助表解决问题的方法。同时,仔细研究这些示例中的算法还可以锻炼自己的逻辑思维,这有助于在实际工作中解决一些难题。从某种意义上讲,也许这种锻练比你从书中学到的技术更重要。
一向追求完美的Itzik Ben-Gan为保证本书的质量,对于SQL Server 2005中新增的一部分特性,他还专门邀请了相关领域的权威专家,这些专家在各自领域对SQL Server的理解无人能及,他们对这些特性描述的深入程度无须多说。他们的加盟使本书更为精彩,更为完美。
对于我来说,翻译这样一本经典之作是一种荣誉,也是一种压力。从一开始我便诚惶诚恐,不敢怠慢。我要特别感谢本书的作者ItzikBen-Gan和两位特约作者Dejan Sarka和Roger Wolter,在翻译的过程中,他们给了我很大的帮助,对我所提出的诸多问题都做了详细的解释。他们的技术让我敬佩,他们的热心以及对读者负责的态度让我感动。在这里,我还要感谢胡百敬老师,通过和他的探讨与交流,使我对一些技术细节有了更深的认识。此外,因我在交稿后反复修改,给本书的编辑杨福川先生和蔡勇先生增加了很多工作。最后,感谢我的同事何明耀和胡永亮,他们为我提出了一些非常好的建议。
《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》一书由我一人翻译,《Microsoft SQL Server 2005技术内幕:T-SQL查询》一书由我、唐灿、刘波共同翻译,唐灿和刘波负责翻译其中的4、5章,我负责翻译其余所有章节,并审校全书。尽管我们已尽最大努力保证翻译质量,但因水平有限,疏漏和错误在所难免,希望广大读者能够提出宝贵意见。另外,我还为这两本书的中文版创建了一个专门的论坛,网址为:http://groups.google.com/grour/insidetsql。届时,我会在上面及时公布勘误及相关信息,希望能与大家一起讨论与该书有关的技术性问题。当然,你也可以通过我的电子信箱lidong6@gmail.com与我取得联系。...
赵立东
2007年5月于北京
前言回到顶部↑
本书及其续篇——《Inside Microsoft SQL Server 2005:T-SQL Programminy》 ——介绍了SQL Server 2005中高级T-SQL查询、查询优化及编程相关的知识。它们是为那些需要在SQL Server 2000和SQL Server 2005中编写和优化代码的开发人员和DBA而设计的。为简单起见,我把这两本书简称为《Inside T-SQL Programming》和《Inside T-SQL Querying》。.
这两本书侧重于解决实践中的常见问题,并讨论了解决这些问题的方法。你会从中学到大量精湛的技巧,这些技巧会充实你的工具箱和编码技能,可以让你顺利地开发出高效的解决方案。
这两本书将向你揭示基于集合(set-based)查询的强大威力,并解释为什么它比使用游标的过程化编程(procedural programming)更具优势。同时,它还会教你识别使用基于游标解决方案与基于集合解决方案的优劣。
书中还讲述了其他几种争议较多的构造(construct)——如临时表、动态执行、XML和 .NET集成——它们在具有强大功能的同时,也具有极大的风险。使用这些功能需要有非常丰富的编程经验。这两本书将教你如何明智、高效并安全地使用它们。
本系列书的第一卷《Inside T-SQL Querying》,介绍基于集合的查询,我建议你先阅读这本书。第二卷《Inside T-SQL Programming》侧重于过程编程,它假设你阅读过第一本书或具有足够的查询知识。
《Inside T-SQL Querying》的前三章介绍逻辑查询处理(logical query processing)和物理查询处理(physical query processing)的基础知识,这是学习其他章节所必需的。
第1章介绍逻辑查询处理。这一章详细描述了查询处理中的各个逻辑阶段,SQL查询所独有的特征,为适应面向集合的关系编程环境而需要转变的特殊观念。
第2章讲述物理查询处理。它详细描述了SQL Server引擎处理查询的方法,比较了物理查询处理和逻辑查询处理。这一章由Lubor Kollar执笔。Lubor是SQL Server 2005的group program manager,他的团队负责关系引擎的底层部分——从查询编译优化到查询执行、事务的一致性、备份/恢复,以及高可靠性。表和索引分区,数据库镜像,数据库快照,快照隔离,递归查询和其他的T-SQL查询实现,数据库引擎优化顾问,创建和维护联机索引等这些SQL Server 2005中的主要特性都有他的团队的参与。世界上很少有人能像Lubor那样了解查询优化。我很荣幸能够让优化器的设计者之一来亲自解释它。..
第3章阐述查询优化的方法论,这是我们在Solid Quality Learning总结出来的,而且已经应用到产品系统中。这一章还介绍了如何使用索引及分析执行计划。本章所提供的背景知识对于理解后面章节中关于使用索引和分析执行的实践内容非常重要。它们是查询和查询优化的重要方面。
后面的章节深入探讨高级查询和查询优化,代码的逻辑部分和物理部分相互交叉。这些章节分别是:“子查询(Subquery)、表表达式(Table Expression)和排名函数(Ranking Functions)”、“联接和集合操作”、“聚集(Aggregating)和旋转(Pivoting)数据”(包含一节与CLR用户定义聚集函数有关的内容,作者为Dejan Sarka)、“TOP和APPLY”、“数据修改”和“图(Graph)、树(Tree)、层次结构(Hierarchy)和递归查询(Recursive Queries)”。
附录A提供了一些纯粹的逻辑难题。你可以通过练习逻辑难题以提高你的逻辑技能。SQL查询的本质就是处理逻辑。我认为练习纯逻辑对于提高用查询解决问题的能力是非常重要的。这些题目非常有意思,也非常具有挑战性,你可以和全家一起练习。它们是我在SQL Server Magazine的T-SQL专栏中发表的题目汇总。感谢SQL Server杂志允许我和本书的读者分享这些题目。
本系列的第二卷《Inside T-SQL Programming》介绍编程相关的T-SQL构造,以及XML处理和 .NET集成。所包含的主题有:数据类型相关的问题,包括XML和CLR用户定义类型(UDT)、临时表、游标、动态执行、视图;用户定义函数包括CLRUDF;存储过程包括CLR存储过程;触发器包括DDL触发器和CLR触发器;事务包括新的快照隔离级别、错误处理,以及Service Broker。
书中讲述XML和 .NET集成的章节(“用户定义类型”、“用户定义函数”、“存储过程”和“触发器”)由Dejan Sarka执笔。Dejan是一位SQL Server专家,他非常了解关系模型。他认为如果使用得当,这些新的构造可以适应关系模型,他在这方面的观点非常引人注目。让熟练掌握关系模型的专家来介绍该产品中这些倍受争议的领域,我认为这非常重要。所有的CLR代码示例都提供了C#和Visual Basic .NET两个版本。
最后一章介绍Service Broker,这一章是由Roger Wolter执笔。Roger在SQL Server团队中负责Service Broker的program manager。同样,没有比让组件的设计者亲自解释该组件更合适的了。
最后, Steve Kass是本书的技术编辑。Steve是个非常精明的人。他是SQL Server MVP,他在杜尔大学(Drew University)教授数学。他精通SQL Server和逻辑学,对本书做出了无法估量的贡献。
对你,本书的读者,我想说的是,SQL对我来说是科学、逻辑和艺术。我已经为这两本书准备了很久,在这两本书中倾注了我所有的激情和多年的经验。但愿它们能让你觉得既实用又非常有趣,你会和我一样发现SQL是灵感之源。如果你有任何的意见或建议,我非常乐意聆听。你可以通过这个网站与我取得联系:http://www.insidetsql.com。
真诚的,Itzik ...
这两本书侧重于解决实践中的常见问题,并讨论了解决这些问题的方法。你会从中学到大量精湛的技巧,这些技巧会充实你的工具箱和编码技能,可以让你顺利地开发出高效的解决方案。
这两本书将向你揭示基于集合(set-based)查询的强大威力,并解释为什么它比使用游标的过程化编程(procedural programming)更具优势。同时,它还会教你识别使用基于游标解决方案与基于集合解决方案的优劣。
书中还讲述了其他几种争议较多的构造(construct)——如临时表、动态执行、XML和 .NET集成——它们在具有强大功能的同时,也具有极大的风险。使用这些功能需要有非常丰富的编程经验。这两本书将教你如何明智、高效并安全地使用它们。
本系列书的第一卷《Inside T-SQL Querying》,介绍基于集合的查询,我建议你先阅读这本书。第二卷《Inside T-SQL Programming》侧重于过程编程,它假设你阅读过第一本书或具有足够的查询知识。
《Inside T-SQL Querying》的前三章介绍逻辑查询处理(logical query processing)和物理查询处理(physical query processing)的基础知识,这是学习其他章节所必需的。
第1章介绍逻辑查询处理。这一章详细描述了查询处理中的各个逻辑阶段,SQL查询所独有的特征,为适应面向集合的关系编程环境而需要转变的特殊观念。
第2章讲述物理查询处理。它详细描述了SQL Server引擎处理查询的方法,比较了物理查询处理和逻辑查询处理。这一章由Lubor Kollar执笔。Lubor是SQL Server 2005的group program manager,他的团队负责关系引擎的底层部分——从查询编译优化到查询执行、事务的一致性、备份/恢复,以及高可靠性。表和索引分区,数据库镜像,数据库快照,快照隔离,递归查询和其他的T-SQL查询实现,数据库引擎优化顾问,创建和维护联机索引等这些SQL Server 2005中的主要特性都有他的团队的参与。世界上很少有人能像Lubor那样了解查询优化。我很荣幸能够让优化器的设计者之一来亲自解释它。..
第3章阐述查询优化的方法论,这是我们在Solid Quality Learning总结出来的,而且已经应用到产品系统中。这一章还介绍了如何使用索引及分析执行计划。本章所提供的背景知识对于理解后面章节中关于使用索引和分析执行的实践内容非常重要。它们是查询和查询优化的重要方面。
后面的章节深入探讨高级查询和查询优化,代码的逻辑部分和物理部分相互交叉。这些章节分别是:“子查询(Subquery)、表表达式(Table Expression)和排名函数(Ranking Functions)”、“联接和集合操作”、“聚集(Aggregating)和旋转(Pivoting)数据”(包含一节与CLR用户定义聚集函数有关的内容,作者为Dejan Sarka)、“TOP和APPLY”、“数据修改”和“图(Graph)、树(Tree)、层次结构(Hierarchy)和递归查询(Recursive Queries)”。
附录A提供了一些纯粹的逻辑难题。你可以通过练习逻辑难题以提高你的逻辑技能。SQL查询的本质就是处理逻辑。我认为练习纯逻辑对于提高用查询解决问题的能力是非常重要的。这些题目非常有意思,也非常具有挑战性,你可以和全家一起练习。它们是我在SQL Server Magazine的T-SQL专栏中发表的题目汇总。感谢SQL Server杂志允许我和本书的读者分享这些题目。
本系列的第二卷《Inside T-SQL Programming》介绍编程相关的T-SQL构造,以及XML处理和 .NET集成。所包含的主题有:数据类型相关的问题,包括XML和CLR用户定义类型(UDT)、临时表、游标、动态执行、视图;用户定义函数包括CLRUDF;存储过程包括CLR存储过程;触发器包括DDL触发器和CLR触发器;事务包括新的快照隔离级别、错误处理,以及Service Broker。
书中讲述XML和 .NET集成的章节(“用户定义类型”、“用户定义函数”、“存储过程”和“触发器”)由Dejan Sarka执笔。Dejan是一位SQL Server专家,他非常了解关系模型。他认为如果使用得当,这些新的构造可以适应关系模型,他在这方面的观点非常引人注目。让熟练掌握关系模型的专家来介绍该产品中这些倍受争议的领域,我认为这非常重要。所有的CLR代码示例都提供了C#和Visual Basic .NET两个版本。
最后一章介绍Service Broker,这一章是由Roger Wolter执笔。Roger在SQL Server团队中负责Service Broker的program manager。同样,没有比让组件的设计者亲自解释该组件更合适的了。
最后, Steve Kass是本书的技术编辑。Steve是个非常精明的人。他是SQL Server MVP,他在杜尔大学(Drew University)教授数学。他精通SQL Server和逻辑学,对本书做出了无法估量的贡献。
对你,本书的读者,我想说的是,SQL对我来说是科学、逻辑和艺术。我已经为这两本书准备了很久,在这两本书中倾注了我所有的激情和多年的经验。但愿它们能让你觉得既实用又非常有趣,你会和我一样发现SQL是灵感之源。如果你有任何的意见或建议,我非常乐意聆听。你可以通过这个网站与我取得联系:http://www.insidetsql.com。
真诚的,Itzik ...
序言回到顶部↑
在我考虑为此书作序时,“master(vt.精通n.大师)”一词在我还未起草就浮现在我的脑海里。作为及物动词,“精通”表示获得某项技术的详尽知识并能熟练使用它。作为名称,“大师”是一个有许多微妙解释的丰富词汇。在本书的上下文中,它有两种解释:一种是技艺高超的大师,一种是可以教书育人的老师。当打开本书的草稿时,我吃惊地发现,本书的第1章就开始讨论如何“精通”SQL程序设计的基本原理。.
SQL语言极为友好。你在几分钟内向人们演示一下SQL的基础知识,就可以使他们能够浏览一个数据库。SQL入门容易精通难。熟练掌握SQL需要花费一些时间,但回报非常丰厚。利用SQL语句可以用多种方法完成同一个任务。在刚开始学习SQL时,很多人写的查询解决方案都非常别扭而且低效。而精通SQL却可以创建出既简单又优雅的解决方案,看起来也赏心悦目。这本书到处都是这种既简单又优雅的解决方案,它们可以帮助你精通SQL。
在生活中,我们会遇到两类老师,一类是通过他们的工作与人分享他们所精通的技能,另一类是通过教书育人来传递和分享知识。本书的读者有幸成为SQL语言及其Microsoft SQL Server实现的大师们的学生。Itzik Ben-Gan是本书的主要作者,他是一位SQL语言专家。作为一名公认的专家,Itzik是属于重新定义媒介的那类人。当看到Itzik完成的解决方案时,我总是很受震撼,感慨“没想到竟可以这样实现!”Lubor Kollar是Microsoft SQL Server开发团队的Program Manager,是解决客户问题的专家。我有时也是他的客户。很多次我走进Lubor的办公室向他请教用SQL解决问题的方法时,Lubor会在几分钟后通过E-mail发给我解决方案,然后我把它保存到我的笔记本电脑中以备日后的会议使用。Dejan Sarka是一位知名的SQL Server MVP,是关系领域的权威,也是SQL Server 2005 BI、XML和CLR集成方面的专家。Dejan对该书的主要贡献是引导读者确定什么时候应该在他们的解决方案中使用XML或CLR集成。..
《Microsoft SQL Server 2005技术内幕:T-SQL查询》把SQL语言的逻辑构造和它们在Microsoft SQL Server的物理实现分开讨论。就像学习数学一样,理解SQL的逻辑构造是进一步探索的坚实基础。第2章和第3章探讨物理查询处理,即,Microsoft SQL Server如何把逻辑查询转换为可以高效返回结果的可执行的查询计划。人们更乐意完全独立地理解逻辑和物理概念。有许多方式可以逻辑地描述一个查询,但其中一些方式比另一些方式更容易由SQL Server查询优化器转换为高效的计划。第4章到第8章是精通SQL查询的基础。在这几章中,你将学习用几行SQL查询文本来完成某些任务,而许多会用但并不精通SQL语言的人却要兴师动众地使用游标、临时表,更糟的是使用程序逻辑。为此,你需要学习如何通过SQL查询提出问题并让SQL Server提供答案,而不是自己写代码来答复。你会发现这些章节包含了大量的实际示例及多种可选择的实现,并解释了什么时候应该选择哪种实现。最后,第9章是属于大师的领域。许多不精通SQL或关系模型的人都认为在关系世界中无法表示图结构。尽管这显然不正确,但还是很少有对这一主题的全面介绍。最后一章描述了如何通过图和树的内在关系去建模。作者在这一章用常见的数据模型表示图和树的结构,并描述了处理这些结构的许多方法,其中应用了一些在SQL Server 2005中的新特性。
严格来讲,《Microsoft SQL Server 2005技术内幕:T-SQL查询》不是一本处方书(recipe book)。也不是用于从中把20来行T-SQL代码复制并粘贴到自己程序的书。尽管它包含明确的解决方案和示例,《Microsoft SQL Server 2005技术内幕:T-SQL查询》是一本学习如何编写SQL程序的书。通过阅读本书,你将学会用SQL语言完成你原本认为不可能完成的任务。如果今后遇到SQL方面的挑战,而它又需要用到本书所提到的方法,你会发现你完全可以自己搞定。无论你是一位SQL语言和Microsoft SQL Server的新手,还是对它们的理解已经达到一定程度,或者正在成为一位SQL专家,我相信这本书都将会进一步提高你的技能。
Microsoft SQL Server是一个工具和平台。该产品开发团队中的每一个人都为能参与发布这样一个伟大的产品而感到无比自豪。人们只有使用SQL Server做出了成绩才会意识到它的直接价值,就像木匠使用一个工具完成一件精美的家具。作为一名熟练的木匠,他需要知道这些方法和技术的基本原理,有敏锐的设计感,了解手上的工具。工匠熟悉他们的工具,知道如何以及什么时候使用它们,以及如何修理它们。《Microsoft SQL Server 2005技术内幕:查询》将向你展示SQL语言的基本原理。阅读本书,你将从大师们那里学到如何设计优雅的SQL解决方案,并了解Microsoft SQL Server作为一个工具在用简单优雅的方法实现解决方案时所独有的一些特性。
David Campbell
General Manager, Microsoft SQL Server: Strategy、Infrastructure和 Architecture ...
SQL语言极为友好。你在几分钟内向人们演示一下SQL的基础知识,就可以使他们能够浏览一个数据库。SQL入门容易精通难。熟练掌握SQL需要花费一些时间,但回报非常丰厚。利用SQL语句可以用多种方法完成同一个任务。在刚开始学习SQL时,很多人写的查询解决方案都非常别扭而且低效。而精通SQL却可以创建出既简单又优雅的解决方案,看起来也赏心悦目。这本书到处都是这种既简单又优雅的解决方案,它们可以帮助你精通SQL。
在生活中,我们会遇到两类老师,一类是通过他们的工作与人分享他们所精通的技能,另一类是通过教书育人来传递和分享知识。本书的读者有幸成为SQL语言及其Microsoft SQL Server实现的大师们的学生。Itzik Ben-Gan是本书的主要作者,他是一位SQL语言专家。作为一名公认的专家,Itzik是属于重新定义媒介的那类人。当看到Itzik完成的解决方案时,我总是很受震撼,感慨“没想到竟可以这样实现!”Lubor Kollar是Microsoft SQL Server开发团队的Program Manager,是解决客户问题的专家。我有时也是他的客户。很多次我走进Lubor的办公室向他请教用SQL解决问题的方法时,Lubor会在几分钟后通过E-mail发给我解决方案,然后我把它保存到我的笔记本电脑中以备日后的会议使用。Dejan Sarka是一位知名的SQL Server MVP,是关系领域的权威,也是SQL Server 2005 BI、XML和CLR集成方面的专家。Dejan对该书的主要贡献是引导读者确定什么时候应该在他们的解决方案中使用XML或CLR集成。..
《Microsoft SQL Server 2005技术内幕:T-SQL查询》把SQL语言的逻辑构造和它们在Microsoft SQL Server的物理实现分开讨论。就像学习数学一样,理解SQL的逻辑构造是进一步探索的坚实基础。第2章和第3章探讨物理查询处理,即,Microsoft SQL Server如何把逻辑查询转换为可以高效返回结果的可执行的查询计划。人们更乐意完全独立地理解逻辑和物理概念。有许多方式可以逻辑地描述一个查询,但其中一些方式比另一些方式更容易由SQL Server查询优化器转换为高效的计划。第4章到第8章是精通SQL查询的基础。在这几章中,你将学习用几行SQL查询文本来完成某些任务,而许多会用但并不精通SQL语言的人却要兴师动众地使用游标、临时表,更糟的是使用程序逻辑。为此,你需要学习如何通过SQL查询提出问题并让SQL Server提供答案,而不是自己写代码来答复。你会发现这些章节包含了大量的实际示例及多种可选择的实现,并解释了什么时候应该选择哪种实现。最后,第9章是属于大师的领域。许多不精通SQL或关系模型的人都认为在关系世界中无法表示图结构。尽管这显然不正确,但还是很少有对这一主题的全面介绍。最后一章描述了如何通过图和树的内在关系去建模。作者在这一章用常见的数据模型表示图和树的结构,并描述了处理这些结构的许多方法,其中应用了一些在SQL Server 2005中的新特性。
严格来讲,《Microsoft SQL Server 2005技术内幕:T-SQL查询》不是一本处方书(recipe book)。也不是用于从中把20来行T-SQL代码复制并粘贴到自己程序的书。尽管它包含明确的解决方案和示例,《Microsoft SQL Server 2005技术内幕:T-SQL查询》是一本学习如何编写SQL程序的书。通过阅读本书,你将学会用SQL语言完成你原本认为不可能完成的任务。如果今后遇到SQL方面的挑战,而它又需要用到本书所提到的方法,你会发现你完全可以自己搞定。无论你是一位SQL语言和Microsoft SQL Server的新手,还是对它们的理解已经达到一定程度,或者正在成为一位SQL专家,我相信这本书都将会进一步提高你的技能。
Microsoft SQL Server是一个工具和平台。该产品开发团队中的每一个人都为能参与发布这样一个伟大的产品而感到无比自豪。人们只有使用SQL Server做出了成绩才会意识到它的直接价值,就像木匠使用一个工具完成一件精美的家具。作为一名熟练的木匠,他需要知道这些方法和技术的基本原理,有敏锐的设计感,了解手上的工具。工匠熟悉他们的工具,知道如何以及什么时候使用它们,以及如何修理它们。《Microsoft SQL Server 2005技术内幕:查询》将向你展示SQL语言的基本原理。阅读本书,你将从大师们那里学到如何设计优雅的SQL解决方案,并了解Microsoft SQL Server作为一个工具在用简单优雅的方法实现解决方案时所独有的一些特性。
David Campbell
General Manager, Microsoft SQL Server: Strategy、Infrastructure和 Architecture ...
【插图】


点击看大图








加载中...