出版时间:2010-1 出版社:清华大学出版社 作者:Robert Vieria 页数:559 译者:马煜,孙皓
Tag标签:无
前言
正如我曾说过的,写书的经历奇特而漫长。早在1999年,当我首次编写Professional SQL Server 7.0Programming一书时,无论是书籍还是程序开发环境都与今天的情况截然不同。那时,.NET尚未出现,Visual Studio 98是当时最流行的开发环境,Java开发环境正被广泛使用,而像Delphi这样可供选择的开发工具也比现在更具竞争力。现在正快速进入所谓的.corn时代,数据库管理系统(DBMS,如SQL Server)的使用也在呈指数增长。 然而,却存在一个问题。虽然我们可以找到一些有关SQL Server的书籍,但这些书籍都面向数据库管理员。这些书籍的作者将大量的时间和精力花费在了普通开发人员几乎不关注的内容上。事实上,对于一些无能为力的事情,我们必须放弃。就像迫切需要解决的全球饥饿或核扩散问题,因为我们根本无力解决,但我们完全能够编写一些面向开发人员的有关SQL的新书籍。 当时我写了Professional SQL Servet 7.0 Programming一书,内容可谓包罗万象,从基础内容到高级内容,适合于各类读者。但其造就的结果就是书特别的厚。 第一本书SQL Server2005发行后,我们计划重新编写SQL Server的第二次修订版本,但再次碰到了一个问题:有关高级编程的内容实在是太多了,以至于无法用一本书来涵盖全部内容。SQL Server 2005的新增内容也很多,要全放在一本书中介绍实属不易(几乎走出了一本书的范围),因此我们决定将原来的“高级编程”系列丛书分成“入门经典”和“高级编程”篇。尽管我们花了大量精力去进行拆分,但仍有不少内容重叠。SQL Server2008又增加了一些新功能,不过这样一来,我们可以使得“高级编程”篇面向高级读者,而“入门经典”篇内容也更加丰富。
内容概要
《SQL Server 2008编程入门经典(第3版)》由浅入深逐步介绍了SQL Server数据库的高级主题,重点讨论了SQL Server 2008的特殊功能以及与其他编程环境的不同之处。作者Robert Vieria是Microsoft SQL,Server方面的权威,他采用通俗易懂的方法揭示了SQL Server-2008核心组件的重要更改。 《SQL Server 2008编程入门经典(第3版)》首先概述了数据库设计的概念,介绍了如何用SQL Setver 2008实现这些基本概念。然后,讲述了RDBMS(关系数据库管理系统)的功能和它在开发系统架构方面的优势。SQL Server 2008的新增内容和更改包括:DATE和TIME数据类型、 hierarchyID数据类型、MERGE命令和多行插入,以及递归查询等。《SQL Server 2008编程入门经典(第3版)》旨在帮助您快速地掌握Microsoft SQL Selwer2008的编程技术。
作者简介
韦拉(Robert Vieria),是畅销书作者。他从1 980年开始深入学习计算技术,从构建和修复计算机软件包,到通过Z80、Basic以及6502汇编语言进行编程。1 983年,Robert开始攻读计算机信息系统的学位,随后转而研究“PC故障”并开始使用数据库语言(从dBase到SQL Server)进行编程,于1990年获得商业管理学位。此外,他还获得了CMA、MCSD、MCT以及MCDBA等认证。Robert目前是俄勒冈州波兰特市的Huron Consuiting Group的Stockarnp事务所的DBA团队领导人,偶尔也会在数据库开发、商业智能和其他主题方面发表演讲。 其他责任者简介: 杨大川,毕业于美国纽约州立大学布法罗分校计算机系,曾担任美国硅谷Annuncio Software等公司的首席工程师,归国后,他于2003年创办了北京迈思奇科技有限公司并担任技术总监,为国内外多家大中型企业提供商业智能咨询和项目实施服务,并逐渐从高新技术外包开发走向了自主知识产权产品的研发道路。他曾被誉为微软全球最有价值专家(MVP);2008年荣获“中关村年度优秀创业留学人员”称号:现担任中国科学院软件学院的兼职教授。
书籍目录
第1章 RDBMS基础:SQLServer数据库的构成1.1 数据库对象概述1.1.1 数据库对象1.1.2 事务日志1.1.3 最基本的数据库对象:表1.1.4 文件组1.1.5 数据库关系图1.1.6 视图1.1.7 存储过程1.1.8 用户自定义函数1.1.9 用户和角色1.1.10 规则1.1.11 默认值1.1.12 用户自定义数据类型1.1.13 全文目录1.2 SQL Server数据类型1.3 SQL Server对象标识符1.3.1 需要命名的对象1.3.2 命名规则1.4 本章小结第2章 SQL Server管理工具2.1 联机丛书2.2 SQLServer配置管理器2.2.1 服务管理2.2.2 网络配置2.2.3 协议2.2.4 客户端2.3 SQLServer Management Studio2.3.1 启动Management Studio2.3.2 “查询”窗口2.4 SQL Server集成服务(SSIS)2.5 BulkCopy Program(bcp)2.6 SQL ServerProfiler2.7 sqlcmd2.8 Power Shell2.9 本章小结第3章 T-SQL基本语句3.1 基本SELECT语句3.1.1 SELECT语句与FROM子句3.1.2 WHERE子句3.1.3 ORDERBY子句3.1.4 使用GROUPBY子句聚合数据3.1.5 使用HAVING子句给分组设置条件3.1.6 使用FORXML子句输出XML3.1.7 通过OPTION子句利用提示3.1.8 DISTINCT和ALL谓词3.2 使用INSERT语句添加数据3.2.1 多行插入3.2.2 INSERTINTOSELECT语句3.3 用UPDATE语句更改数据3.4 DELETE语句3.5 本章小结3.6 练习第4章 连接4.1 连接4.2 内部连接4.3 外部连接4.3.1 简单的外部连接4.3.2 处理更复杂的外部连接4.4 完全连接4.5 交叉连接4.6 JOIN语句的早期语法结构4.6.1 内部连接的早期语法结构4.6.2 外部连接的早期语法结构4.6.3 交叉连接的早期语法结构4.7 联合4.8 本章小结4.9 练习第5章 创建和修改数据表5.1 SQLserver中的对象名5.1.1 模式名5.1.2 数据库名5.1.3 通过服务器命名5.1.4 回顾默认值5.2 CReATE语句5.2.1 CREATEDATAASE5.2.2 CREATETABLE5.3 ALTER语句5.3.1 AITERDATABASE5.3.2 ALTERTABLE5.4 DROP语句5.5 使用GUI工具5.5.1 使用ManagementStudio创建数据库5.5.2 回到代码:使用MariagementStudio创建脚本的基础知识5.6 本章小结5.7 练习第6章 约束6.1 约束的类型6.1.1 域约束6.1.2 实体约束6.1.3 参照完整性约束6.2 约束命名6.3 键约束6.3.1 主键约束6.3.2 外键约束6.3.3 唯一约束6.4 CHECK约束6.5 DEFAuLT约束6.5.1 在cREATETABLE语句中定义DEFAULT约束6.5.2 在已存在的表中添加DEFAUIT约束6.6 禁用约束6.6.1 在创建约束时忽略无效的数据6.6.2 临时禁用已存在的约束6.7 规则和默认值6.7.1 规则6.7.2 默认值6.7.3 确定哪个表和数据类型使用给定的规则或默认值6.8 用于实现数据完整性的触发器6.9 如何选择6.1 0本章小结第7章 更复杂的查询7.1 子查询的概念7.2 关联子查询7.2.1 关联子查询的工作原理7.2.2 在WHERE子句中的关联子查询7.2.3 处理NULL数据——ISNULL函数7.3 派生表7.4 EXISTS运算符7.5 混合数据类型:CAST和CONVERT7.6 MERGE命令7.6.1 BYl.ARGET和BYSOURCE7.6.2 OUTPUT子句7.7 性能方面的考虑7.8 本章小结7.9 练习第8章 规范化和其他基本设计问题8.1 表8.2 保持数据“规范8.2.1 准备工作8.2.2 第一范式8.2.3 第二范式8.2.4 第三范式8.2.5 其他范式8.3 关系8.3.1 一对一关系8.3.2 一对一或一对多关系8.3.3 多对多关系8.4 数据库关系图8.4.1 表8.4.2 添加和删除表8.4.3 关系8.5 反规范化8.6 超出规范化的一些规则8.6.1 保持简单8.6.2 选择数据类型8.6.3 尽量进行存储8.7 创建一个快速示例8.7.1 创建数据库8.7.2 添加数据库关系图和初始表8.7.3 添加关系8.7.4 添加一些约束8.8 本章小结8.9 练习第9章 SQLServer存储和索引结构9.1 SQLServer存储机制9.1.1 数据库9.1.2 区段9.1.3 页9.1.4 行9.1.5 稀疏列9.2 理解索引9.2.1 平衡树(B.树)9.2.2 SQLServer中访问数据的方式9.3 创建、修改和删除索引9.3.1 CREATEINDEX语句9.3.2 创建XML索引9.3.3 随约束创建的隐含索引9.3.4 在稀疏列和地理空间列上创建索引9.4 明智地选择——在何时何地使用何种索引9.4.1 选择性9.4.2 注意成本9.4.3 选择群集索引9.4.4 列顺序问题9.4.5 修改索引9.4.6 删除索引9.4.7 从查询计划中获取提示9.4.8 使用数据库引擎调整向导9.5 维护索引9.5.1 碎片9.5.2 确定碎片和页拆分的可能性9.6 本章小结9.7 练习第10章 视图10.1 简单的视图10.2 更加复杂的视图10.3 使用T-SOL编辑视图10.4 删除视图10.5 在MaliagementStudio中创建和编辑视图10.6 审查:显示现有的代码10.7 保护代码:加密视图10.8 关于模式绑定10.9 使用VIEWMETADATA使视图看起来像表一样10.10 索引(物化)视图10.11 本章小结10.12 练习第11章 编写脚本和批处理11.1 脚本的基础知识11.1.1 USE语句11.1.2 声明变量11.1.3 使用@@IDENTITY11.1.4 使用@@ROWCOUNT11.2 批处理11.2.1 批处理中的错误11.2.2 何时使用批处理11.3 sqlcmd11.4 动态SQL:用ExEC命令动态生成代码11.5 控制流语句11.5.1 IFELSE语句11.5.2 CASE语句11.5.3 用WHILE语句进行循环11.5.4 WAITOR语句11.5.5 TRY/CATCH块11.6 本章小结11.7 练习第12章 存储过程12.1 创建存储过程:基本语法12.2 使用ALTER修改存储过程12.3 删除存储过程12.4 参数化12.5 通过返回值确认成功或失败12.6 错误处理12.6.1 以前的方式12.6.2 在错误发生前处理错误12.6.3 手动引发错误12.6.4 添加自定义的错误消息12.7 存储过程的优点12.7.1 创建可调用的进程12.7.2 为了安伞性使用存储过程12.7.3 存储过程和性能12.8 扩展存储过程(XP)12.9 递归简介12.10 调试12.10.1 启动调试器12.10.2 调试器的组成12.10.3 使用调试器12.11 .NET程序集12.12 本章小结第13章 用户自定义函数13.1 UDF的定义13.2 返回标量值的uDF13.3 返回表的UDF13.4 调试用户自定义函数13.5 数据库中的.NET13.6 本章小结13.7 练习第14章 事务和锁14.1 事务14.1.1 BEGINTRAN14.1.2 COMMITTRAN14.1.3 ROLLBACKTRAN14.1.4 SAVETRAN14.2 SQLServer日志的工作方式14.2.1 失败和恢复14.2.2 隐式事务14.3 锁和并发14.3.1 通过锁可以防止的问题14.3.2 可以锁定的资源14.3.3 锁升级和锁对性能的影响14.3.4 锁定模式14.3.5 锁的兼容性14.3.6 指定一种特有的锁定类型——优化器提示14.4 设置隔离级别14.5 处理死锁(1205错误)……第15章 触发器第16章 初识XML第17章 Reporting Services第18章 使用Integration Services进行集成第19章 扮演管理员的角色附录
章节摘录
5.ReportServer数据库 这个数据库只有在安装了ReportServer的情况下才存在(它不必与数据库引擎相同,但注意,如果是不同的服务器,它要求单独的许可)。ReportServer数据库存储Reporting Server实例的任何持久化元数据。注意,它是只可用于给定Reporting Server实例的操作性数据库,只能通过Reporting Server修改或访问。 6.ReportServer TempDB数据库 除了存储非持久化数据(如有关正在运行的报表的数据)外,该数据库的基本作用与ReportServer数据库相同。同样,它也是个纯粹操作性的数据库,只能通过Reporting Server访问或修改。 7.AdventureWorks2008数据库 在有AdventureWorks2008数据库之前,SQL Server就包括了其他样本数据库。老样本数据库有不足之处,如它们包含了一些不好的设计习惯。此外,老的例子过于简单,集中阐明某些数据库概念,而不是将SQL Server作为一个产品或将数据库视为一个整体。这里不再探讨AdventureWorks2008数据库是否存在相同问题。AdventureWorks2008数据库确实试图解决这些问题。 在SQL Server 2005发展之初,Microsoft就想要一个更加健壮的样本数据库,使其尽可能作为其产品的一个示例。AdventureWorks2008数据库就是这一想法的结果。尽管该数据库对于初学者过于复杂,但是其作为数据库示例确实是一杰作。虽然该数据库不包括所有的内容,但还是一个相当完整的示例,具有更接近实际的数据量、复杂的结构和用于展示产品的大部分特征的部件。从这一方面看,该数据库是非常不错的。 AdventureWorks2008是中心数据库,本书将广泛使用该数据库。 8.AdventureWorksLT2008数据库 这里的LT表示轻量级(1ite)。它只是AdventureWorks2008数据库完整版的极小一部分。该思想提供了更简化的样本集,便于理解基本概念和完成简单的练习。尽管本人并不知晓推出这一新样本集的真正原因,但我猜测是为了取代较老的。Northwind和.Pubs样本集(相较于AdventureWorks2008样本集,许多培训者更喜欢采用Northwind和Pubs样本集,因为Adventures2008数据库对于初级培训来说通常过于复杂和笨重)。
编辑推荐
《SQL Server 2008编程入门经典(第3版)》主要内容 RDBMS如何存储、管理和检索数据 创建和修改表的方法 数据库范式的多种形式 编写脚本和使用存储过程的技巧 索引的优缺点 锁和死锁对系统性能的各种影响 理解触发器及其使用方式 《SQL Server 2008编程入门经典(第3版)》读者对象 《SQL Server 2008编程入门经典(第3版)》适合于希望全面了解数据库设计概念和学习SQL的开发人员。读者具有数据库方面的基础知识有助于更好地理解《SQL Server 2008编程入门经典(第3版)》的内容。
图书封面
图书标签Tags
无
评论、评分、阅读与下载