前 言
所谓“旧的不去,新的不来”。这个主题多年来都是Rob Vieira的,但现在他不再继续,所以我用自己的一章新内容——本书的第1章——作为开始。同样,读者也要进行某种转换,您可能了解一些编程知识,目前正打算开始学习关系数据库编程,尤其是Microsoft SQL Server 2012。
数据库编程与大多数其他软件工程有很大的区别。如果您像我一样,也是从早期的编程工作(基于6502计算机上的BASIC语言)转到数据库上的。我是20世纪90年代早期在Microsoft公司工作时,为了支持雷达的一个测试版产品,需要在Access(当时是2.0版本)中跟踪我所做工作的某些方面而转到数据库上的。我学习了数据库后,就被吸引住了,在Access支持团队中工作的那几年(也学习了SQL Server 4.2及以上版本),我掌握了这门技术。
使用SQL Server是与普通的过程式编程完全不同的体验,需要用数学和集合术语来思考,学习如何仔细地确定需要什么,而不必明确说明如何完成任务。从过程式编程转向这种思考方式时,如果没有获得任何帮助,就好像不借助离合器就来个大转弯。然而SQL这种语言比较简单,一旦学会,使用起来非常愉快。
我向内行、Microsoft的内部培训师和同事们学习,当时希望能有一本书介绍概念和函数知识,来帮助我理解我看到的东西,了解当时我还不知道的知识。而本书就是我希望阅读的书,这意味着如果您处于T-SQL的早期学习阶段,您可能也需要本书。
这是一本循序渐进的教程,以有序的方式介绍了小代码段所需要的概念,每个小代码段都建立在上一个小代码段的基础上。这样编写的原因是,读者可能很难从在线帮助数据库中选择出相关主题,学习到这样完整的新概念集合。在2012年,图书仍是学习新概念的重要方式。
本书尽可能覆盖了SQL Server的所有核心元素,希望它能与先前编写的Professional SQL Server Programming一书一样成功。在学习完本书后,读者应继续学习,成为一名高级的SQL Server编程人员,并在未来的几年中能从容面对数据库编程的独特挑战。
0.1 本书读者对象
本书书名中的“入门”一词容易引起误解。本书的确非常适合初学者,但它也适合入门之后的进一步学习。其内容是初学者所必须了解的,但由于其内容繁多,读者不可能全部记牢,因此您可在需要时回顾并参考相关内容,这对于中、高级用户来说也同样适用。
初学者一般希望从头开始学习。而本书主要内容都是按“需要掌握”哪类知识来编排的。除了XML、Reporting Services和Integration Services之外,本书的每一章都是易于理解的基本内容,这样读者在遇到SQL Server问题时,很容易找到相关内容来学习。甚至这3个主题也是SQL Server开发人员所必须掌握的。
对于中级用户,可以跳过本书的前7章或前8章。但我们仍建议浏览这几章,以弥补这方面知识的漏洞。也可以先浏览一下这几章,然后快速跳过熟悉的内容,去阅读不了解的内容。
高级用户除了可利用本书作为很好的参考资料之外,可能会希望学习第12章以及后面的章节。事实上,第12章以后的内容更加新颖(如新的调试、事务、XML、BI、Reporting Services以及Integration Services内容等)。
0.2 本书内容简介
从本书书名可以看出,本书涵盖的SQL Server 2012的内容是明确地面向开发人员的。
SQL Server 2012是发展20余年的数据库管理系统的最新版本。它是在对SQL Server 7.0版本重新设计的基础上建立的——这个版本添加了一些强大的分析和报表功能。本书着重满足各层次开发人员的核心编程需求。另外,本书主要围绕SQL Server 2012版本讲解,但也会涉及向后兼容性的问题,因为这可能影响设计或编码选择。
0.3 本书内容安排
本书内容按照从基本到高级的顺序安排,同时假定您已经是富有经验的开发人员(除了数据库方面)。要学习本书,您必须具有编程的基本知识,如变量、数据类型以及过程式编程。当然,您不必学过查询。
本书尤其适合于开发人员使用。为了简洁起见,本书会简化或完全忽略那些面向数据库管理员而非开发人员的内容。当然本书也涉及数据库管理的问题,因为这些问题在开发过程中需要考虑到,本书将在第21章对几个数据库管理相关的问题作简单的介绍。
在客户端开发方面,本书尽量做到与语言无关。通常忽略所使用的语言,如VB、C#、C++、Java,以及其他语言(本书侧重于服务器端的开发),而在涉及时也对不同语言一视同仁。
在学习顺序方面,首先学习SQL基本对象,然后是基本的查询和连接知识。接着学习数据库的其他对象,并讨论与数据库物理设计有关的内容。然后学习如何编写更健壮的SQL Server脚本代码、存储过程、用户自定义函数与触发器。在简要介绍商务智能后,再进一步学习SQL Server的一些外围功能。本书最后要学习的是数据库管理方面的重要内容,有助于维护用户开发的数据库。
0.4 使用本书的条件
使用本书需要安装SQL Server。由于本书大量使用各种SQL Server 2012管理工具,因此推荐安装包含所有模块功能的SQL Server版本,而不是SQL Server Express。虽说如此,本书还是侧重于介绍脚本编写,因此即使是SQL Server Express用户,也能学习本书的大部分内容。另外还需要AdventureWorks样本数据库,用于BI和报表的AdventureWorks数据库,以及安装一些自定义数据库。访问这些数据库的指令参见本书配套网站(www.wrox.com)上的ReadMe文件。
虽然Visual Studio对于学习本书也很有用,但是所需要的大部分Visual Studio特性都包括在SQL Server产品附带的Business Intelligence Studio中。
0.5 源代码
在练习书中的示例时,可以选择手动输入代码或者使用本书附带的源代码文件。书中用到的所有源代码都可以从www.wrox.com下载。进入站点http://www.wrox.com后,只需要找到本书的英文书名(使用Search搜索框或书名列表),单击本书详细信息页面上的Download Code链接,就可以得到本书所有的源代码。
就
下载完代码后,用您喜欢的压缩工具把它解压缩。此外,也可以去Wrox的主下载页面www.wrox.com/dynamic/books/download.aspx找到本书或Wrox出版的其他书籍的代码。
0.6 勘误表
尽管我们竭尽所能来确保在正文和代码中没有错误,但人无完人,错误难免会发生。如果您在Wrox出版的书中发现了错误(例如拼写错误或代码错误),我们将非常感谢您的反馈。发送勘误表将节省其他读者的时间,同时也会帮助我们提供更高质量的信息。
要找到本书的勘误表页面,可以进入www.wrox.com,使用Search搜索框或书名列表定位本书,然后在本书的详细信息页面上单击Book Errata链接。在这个页面上可以查看为本书提交的、Wrox编辑粘贴上去的所有错误。完整的书名列表(包括每本书的勘误表)也可以从www.wrox.com/misc-pages/booklist.shtml上获得。
如果您在本书的勘误页面上没有看到您发现的错误,可以到www.wrox.com/contact/techsupport.shtml上填写表单,把您发现的错误发给我们。我们会检查这些信息,如果属实,就把它添加到本书的勘误页面上,并在本书随后的版本中更正错误。
0.7 p2p.wrox.com
如果想和作者或同行进行讨论,请加入http://p2p.wrox.com上的P2P论坛。该论坛是一个基于Web的系统,您可以发布有关Wrox图书及相关技术的消息,与其他读者或技术人员交流。该论坛提供了订阅功能,当您感兴趣的主题有新帖子发布时,系统会发送邮件来通知。Wrox的作者、编辑、其他业界专家和像您一样的读者都会出现在这些论坛中。
在http://p2p.wrox.com网站上,您会找到很多不同的论坛,它们不但有助于您阅读本书,还有助于开发自己的应用程序。加入论坛的步骤如下:
(1) 进入http://p2p.wrox.com,单击Register链接。
(2) 阅读使用条款,然后单击Agree按钮。
(3) 填写加入该论坛必需的信息和其他您愿意提供的信息,单击Submit按钮。
(4) 您将收到一封电子邮件,描述如何验证您的账户和完成加入过程。
加入之后,就可以发布新的消息和回复其他用户发布的消息。可以随时在Web上阅读论坛里的消息。如果想让某个论坛的新消息以电子邮件的方式发给您,可以单击论坛列表中论坛名称旁边的Subscribe to this Forum图标。
要了解如何使用Wrox P2P的更多信息,请阅读P2P FAQ,其中回答了论坛软件如何使用的问题,以及许多与P2P和Wrox图书相关的问题。要阅读FAQ,单击任何P2P页面上的FAQ链接即可。
