SQL Server 2005范例代码查询辞典(SQL Server程序员和DBA不可或缺的权威参考手册)
基本信息
- 作者: (美)Joseph Sack
- 译者: 朱晔 金迎春
- 丛书名: 图灵程序设计丛书.数据库系列
- 出版社:人民邮电出版社
- ISBN:9787115179586
- 上架时间:2008-5-23
- 出版日期:2008 年6月
- 开本:16开
- 页码:632
- 版次:1-1
- 所属分类:
计算机 > 数据库 > SQL Server
编辑推荐
SQL Server程序员和DBA不可或缺的权威参考手册.
查询方便,迅速解决工作中的难题..
大量来自微软内部的技巧...
推荐阅读
内容简介回到顶部↑
t-sql 一直以来都是sql server所有编程的基础。和传统的t-sql书籍不同,本书以独特的“技巧”形式来介绍知识点,涵盖了数据处理(增删改、视图、索引、存储过程、触发器等)、数据应用(web服务、clr集成、分布式查询等)和数据库配置(主体、安全、数据库镜像和快照、备份等)3个方面的内容。其中,每一个技巧中都包含了有代表性的示例和精炼的解析。
本书实用、高效、技巧性强,适用于sql server专业技术人员,也可供初学者学习参考。
本书实用、高效、技巧性强,适用于sql server专业技术人员,也可供初学者学习参考。
作译者回到顶部↑
目录回到顶部↑
第1章 select
1.1 基本的select语句
1.1.1 从所有行中选择指定列
1.1.2 从所有行中选择所有列
1.2 使用基本where子句的select查询
1.2.1 使用where子句指定结果集中返回的行
1.2.2 组合搜索条件
1.2.3 否定搜索条件
1.2.4 保持where子句无歧义
1.3 使用运算符和表达式
1.3.1 在数据范围搜索中使用between
1.3.2 使用比较运算符
1.3.3 检测null值
1.3.4 返回基于一组值的行
1.3.5 like和通配符的结合使用
1.4 对结果排序
1.4.1 使用order by子句
1.4.2 在排序的结果中使用top关键字
1.5 数据分组
1.5.1 使用group by子句
1.1 基本的select语句
1.1.1 从所有行中选择指定列
1.1.2 从所有行中选择所有列
1.2 使用基本where子句的select查询
1.2.1 使用where子句指定结果集中返回的行
1.2.2 组合搜索条件
1.2.3 否定搜索条件
1.2.4 保持where子句无歧义
1.3 使用运算符和表达式
1.3.1 在数据范围搜索中使用between
1.3.2 使用比较运算符
1.3.3 检测null值
1.3.4 返回基于一组值的行
1.3.5 like和通配符的结合使用
1.4 对结果排序
1.4.1 使用order by子句
1.4.2 在排序的结果中使用top关键字
1.5 数据分组
1.5.1 使用group by子句
译者序回到顶部↑
T-SQL一直以来都是SQL Server所有编程的基础,不管是DBA还是基于数据库的应用程序开发人员都离不开T-SQL。令所有人都欣喜的是,SQL Server 2005中的T-SQL和之前版本相比增强了很多,比如:.
□新增了TRY...CATCH结构以简化T-SQL错误处理编程;
□新增了一系列排名函数使数据分页、排名操作更简单;
□新增了PIVOT和UNPIVOT来轻松实现对结果集的行列转换;
□OUTPUT子句使我们能跟踪增删改操作所影响的行;
□ ……
这些增强都非常有针对性,之前版本的SQL Server使用者觉得比较复杂的问题都能在SQL Server 2005中使用新的或者增强的T-SQL以更优雅的方式实现。除了编程方面的增强之外,SQL Server 2005还提供了诸如分布式查询、基于消息的应用程序以及数据库快照、CLR集成等一系列解决方案,使我们的系统更稳定、更可靠、更灵活。..
初读本书,就会感到它非常有特色:
□从广度上来说,本书涉及的内容非常全面,无论是侧重编程的开发人员还是侧重维护的DBA,都能在本书中找到需要的内容;
□从形式上来说,本书不是以知识点为中心的,而是以现实中常见的应用为中心,以一段段精炼的T-SQL代码告诉读者怎么解决问题, 这些代码就是“技巧”,它们能让读者在不走弯路的情况下快速找到合适的解决方案;
□从文字上来说,本书言简意赅,能以通俗的语言来解释比较难懂的问题。如果看了MSDN还是不能理解的话,或许可以从本书找到突破口。
我建议不同的读者可以采用不同的方式阅读本书:
□如果读者是T-SQL方面的初学者,可以从头到尾细细阅读本书。开始的一些章节即使是初学者也很容易理解,在阅读本书的同时建议根据书中的示例进行一些扩展练习。
□如果读者已经使用过之前版本的SQL Server,并且还不打算升级的话,可以选择一些SQL Server 2005中新增的内容进行有针对性的阅读,读完之后或许会找到升级成SQL Server 2005的理由。
□如果读者已经使用过之前版本的SQL Server,而且对新公司使用的SQL Server 2005无从入手的话,可以在遇到问题后直接根据索引查阅问题的解决方案。有了本书,别人或许会误以为你是SQL Server 2005方面的老手。
□如果读者对SQL Server 2005已经比较熟悉的话,可以翻阅一下书中的技巧,那些精巧的例子可能会给你更多的启发。
本书的前半部分(第1~15章以及前言等)由朱晔翻译,后半部分(第16~29章以及索引等)由金迎春翻译,金迎春作为麦格特尔网络科技有限公司的资深DBA经理在数据库方面有着很高的造诣,在翻译过程中给了我很多建议和指导。由于时间仓促,书中难免存在错漏之处,欢迎读者指正。读者在阅读过程中有任何问题都可以发邮件到TSQLRecipes@hotmail.com和我们交流。...
朱晔
微软最有价值专家
2007年10月15日于中国上海
□新增了TRY...CATCH结构以简化T-SQL错误处理编程;
□新增了一系列排名函数使数据分页、排名操作更简单;
□新增了PIVOT和UNPIVOT来轻松实现对结果集的行列转换;
□OUTPUT子句使我们能跟踪增删改操作所影响的行;
□ ……
这些增强都非常有针对性,之前版本的SQL Server使用者觉得比较复杂的问题都能在SQL Server 2005中使用新的或者增强的T-SQL以更优雅的方式实现。除了编程方面的增强之外,SQL Server 2005还提供了诸如分布式查询、基于消息的应用程序以及数据库快照、CLR集成等一系列解决方案,使我们的系统更稳定、更可靠、更灵活。..
初读本书,就会感到它非常有特色:
□从广度上来说,本书涉及的内容非常全面,无论是侧重编程的开发人员还是侧重维护的DBA,都能在本书中找到需要的内容;
□从形式上来说,本书不是以知识点为中心的,而是以现实中常见的应用为中心,以一段段精炼的T-SQL代码告诉读者怎么解决问题, 这些代码就是“技巧”,它们能让读者在不走弯路的情况下快速找到合适的解决方案;
□从文字上来说,本书言简意赅,能以通俗的语言来解释比较难懂的问题。如果看了MSDN还是不能理解的话,或许可以从本书找到突破口。
我建议不同的读者可以采用不同的方式阅读本书:
□如果读者是T-SQL方面的初学者,可以从头到尾细细阅读本书。开始的一些章节即使是初学者也很容易理解,在阅读本书的同时建议根据书中的示例进行一些扩展练习。
□如果读者已经使用过之前版本的SQL Server,并且还不打算升级的话,可以选择一些SQL Server 2005中新增的内容进行有针对性的阅读,读完之后或许会找到升级成SQL Server 2005的理由。
□如果读者已经使用过之前版本的SQL Server,而且对新公司使用的SQL Server 2005无从入手的话,可以在遇到问题后直接根据索引查阅问题的解决方案。有了本书,别人或许会误以为你是SQL Server 2005方面的老手。
□如果读者对SQL Server 2005已经比较熟悉的话,可以翻阅一下书中的技巧,那些精巧的例子可能会给你更多的启发。
本书的前半部分(第1~15章以及前言等)由朱晔翻译,后半部分(第16~29章以及索引等)由金迎春翻译,金迎春作为麦格特尔网络科技有限公司的资深DBA经理在数据库方面有着很高的造诣,在翻译过程中给了我很多建议和指导。由于时间仓促,书中难免存在错漏之处,欢迎读者指正。读者在阅读过程中有任何问题都可以发邮件到TSQLRecipes@hotmail.com和我们交流。...
朱晔
微软最有价值专家
2007年10月15日于中国上海
前言回到顶部↑
说到执行日常的SQL Server任务,技术文档中的内容往往超过我们想要知道的。.
假设现在你很忙,想要在别人向某个表中插入重复值以前给该表加上一个唯一的约束,你打算看什么资料呢?
SQL Server联机丛书可能是一个不错的选择。它提供了大量有用的信息,你也知道一定能从中找到需要的答案。不幸的是,找到所需信息前可能要把很多时间花在翻阅一些无关的信息上。即使最终找到了正确的页面,你所需要的信息可能还包含在大段的语法块中,其中有很多功能和示例是你不需要的。
本书的目的在于快速提供读者想要获取或者参考的信息。所有的主题都是基于某个特定的任务来讲述,并且每个主题(技巧)都包含了你必须了解的背景、一个或者多个示例及其工作原理的简短解析。
无论是需要重温某个好久没用的主题还是初学T-SQL语法,读者都可以轻松地在书中找到需要的内容。本书既包含了基础知识,又讲解了SQL Server 2005 T-SQL中提供的一些更加复杂的技术和功能。
想要了解SQL Server 2005有什么新的改变吗?本书也介绍了SQL Server 2005中引入的一些T-SQL的新特性和新功能,读者可以从中轻松而快速地了解这些特性。..
通过友好的索引,读者无须按照顺序来阅读和学习。无论你是初学者、兼职爱好者或者资深的SQL Server专家,本书都为你提供了快速的资料来帮你完成任务。
致谢
谨以本书献给David Hatch。没有他一直以来的帮助、鼓励、建议以及支持,也就没有这本书。
感谢Tony Davis掌控大局的能力,他以其独特的洞察力和清晰的思路帮助我整理出有意义的叙述思路。Tony给了我坚定的信念使我最终能做得最好。
感谢Evan Terry,除了技术方面的审校,他还在整体内容上做了大量的工作。Evan思路清晰并且善于发现书中的问题。现在回头想想,Tony和Evan让我轻松很多。
感谢Beth Christmas出色的工作态度,她的才能使得事情总能很好地解决,并且谢谢她对我的问题做出的快速解答。尤其让我感激的是Beth把此书当作自己的书一样,一直在关心书的进度。
感谢有天赋的Julie Smith,她帮我找到合适的单词,创造了通顺流畅、小说一般的行文。和Evan一样,Julie也做了很多职责以外的事情,在各个层次上对内容作了评价。
还要感谢Katie Stence、Kari Brooks和其他Apress公司的工作人员——虽然他们中的某些人我没有见过,但他们所作的贡献我铭记在心。非常荣幸能有这么多人一直关注着我。
最后,要感谢Gary Cornell购买了我上一本书的版权,补偿了以前那个出版社未实现的承诺,并且还对我将来的作品继续保持诚意并提供支持。如果所有的出版公司都由像Gary这样的人经营,会有更多愉快的技术作者产生!...
假设现在你很忙,想要在别人向某个表中插入重复值以前给该表加上一个唯一的约束,你打算看什么资料呢?
SQL Server联机丛书可能是一个不错的选择。它提供了大量有用的信息,你也知道一定能从中找到需要的答案。不幸的是,找到所需信息前可能要把很多时间花在翻阅一些无关的信息上。即使最终找到了正确的页面,你所需要的信息可能还包含在大段的语法块中,其中有很多功能和示例是你不需要的。
本书的目的在于快速提供读者想要获取或者参考的信息。所有的主题都是基于某个特定的任务来讲述,并且每个主题(技巧)都包含了你必须了解的背景、一个或者多个示例及其工作原理的简短解析。
无论是需要重温某个好久没用的主题还是初学T-SQL语法,读者都可以轻松地在书中找到需要的内容。本书既包含了基础知识,又讲解了SQL Server 2005 T-SQL中提供的一些更加复杂的技术和功能。
想要了解SQL Server 2005有什么新的改变吗?本书也介绍了SQL Server 2005中引入的一些T-SQL的新特性和新功能,读者可以从中轻松而快速地了解这些特性。..
通过友好的索引,读者无须按照顺序来阅读和学习。无论你是初学者、兼职爱好者或者资深的SQL Server专家,本书都为你提供了快速的资料来帮你完成任务。
致谢
谨以本书献给David Hatch。没有他一直以来的帮助、鼓励、建议以及支持,也就没有这本书。
感谢Tony Davis掌控大局的能力,他以其独特的洞察力和清晰的思路帮助我整理出有意义的叙述思路。Tony给了我坚定的信念使我最终能做得最好。
感谢Evan Terry,除了技术方面的审校,他还在整体内容上做了大量的工作。Evan思路清晰并且善于发现书中的问题。现在回头想想,Tony和Evan让我轻松很多。
感谢Beth Christmas出色的工作态度,她的才能使得事情总能很好地解决,并且谢谢她对我的问题做出的快速解答。尤其让我感激的是Beth把此书当作自己的书一样,一直在关心书的进度。
感谢有天赋的Julie Smith,她帮我找到合适的单词,创造了通顺流畅、小说一般的行文。和Evan一样,Julie也做了很多职责以外的事情,在各个层次上对内容作了评价。
还要感谢Katie Stence、Kari Brooks和其他Apress公司的工作人员——虽然他们中的某些人我没有见过,但他们所作的贡献我铭记在心。非常荣幸能有这么多人一直关注着我。
最后,要感谢Gary Cornell购买了我上一本书的版权,补偿了以前那个出版社未实现的承诺,并且还对我将来的作品继续保持诚意并提供支持。如果所有的出版公司都由像Gary这样的人经营,会有更多愉快的技术作者产生!...
书摘回到顶部↑
第1章SELECT
在这一章中,包含了使用SELECT语句从SQL Server数据库中返回数据的一些技巧。你会注意到,在每一章的开始都会先介绍最基础的概念。这些内容是为那些SQL Server 2005 T-SQL查询语言的初学者准备的。除基础内容之外,还会介绍一些在日常的开发和管理工作中用得到的技巧。这些技巧还会帮助你学习SQL Server 2005中引入的新功能。书中的大部分示例使用了AdventureWorks数据库,它是SQL Server 2005的可选安装内容。
提示AdventureWorks数据库是SQL Server 2005提供的一个示例数据库。它与早期版本的SQL Server中的Northwind和Pubs数据库相似。欲知如何安装此数据库,请参阅SQL Server 2005联机帮助主题“运行安装程序安装AdventureWorks@例数据库和示例”。
你几乎可以按任意顺序阅读书中的这些技巧。可以直接跳到感兴趣的主题,或是按顺序读。如果看到有用的内容(一段代码或者示例),可以按照自己的应用去修改或者直接整合到你的函数或存储过程中去。这样就体现了本书的价值。
1.1基本的SELECT语句
SELECT命令是T-SQL语言的基础,可以使用它从SQL Server数据库中(更准确地说是从SQL Server数据库中的数据对象中)获取数据。尽管SELECT语句的完整语法是夸张的,但基本的语法可以用如下精炼的形式表示:
SE LECT select—list
FROM table—list
在前面代码中列出的select ll st参数是你希望从查询的结果中返回的字段列表。table]1 st参数是提供数据的实际的表或视图。
后面的几个技巧会阐述如何使用基本的SELECT语句。
1.1.1从所有行中选择指定列
这个示例演示了一个非常简单的、对AdventureWorks数据库的SELECT查询,从一些行中返回4列。在查询中我们使用了显式列名:
USE AdventureWorks
……
在这一章中,包含了使用SELECT语句从SQL Server数据库中返回数据的一些技巧。你会注意到,在每一章的开始都会先介绍最基础的概念。这些内容是为那些SQL Server 2005 T-SQL查询语言的初学者准备的。除基础内容之外,还会介绍一些在日常的开发和管理工作中用得到的技巧。这些技巧还会帮助你学习SQL Server 2005中引入的新功能。书中的大部分示例使用了AdventureWorks数据库,它是SQL Server 2005的可选安装内容。
提示AdventureWorks数据库是SQL Server 2005提供的一个示例数据库。它与早期版本的SQL Server中的Northwind和Pubs数据库相似。欲知如何安装此数据库,请参阅SQL Server 2005联机帮助主题“运行安装程序安装AdventureWorks@例数据库和示例”。
你几乎可以按任意顺序阅读书中的这些技巧。可以直接跳到感兴趣的主题,或是按顺序读。如果看到有用的内容(一段代码或者示例),可以按照自己的应用去修改或者直接整合到你的函数或存储过程中去。这样就体现了本书的价值。
1.1基本的SELECT语句
SELECT命令是T-SQL语言的基础,可以使用它从SQL Server数据库中(更准确地说是从SQL Server数据库中的数据对象中)获取数据。尽管SELECT语句的完整语法是夸张的,但基本的语法可以用如下精炼的形式表示:
SE LECT select—list
FROM table—list
在前面代码中列出的select ll st参数是你希望从查询的结果中返回的字段列表。table]1 st参数是提供数据的实际的表或视图。
后面的几个技巧会阐述如何使用基本的SELECT语句。
1.1.1从所有行中选择指定列
这个示例演示了一个非常简单的、对AdventureWorks数据库的SELECT查询,从一些行中返回4列。在查询中我们使用了显式列名:
USE AdventureWorks
……







点击看大图







加载中...

