具体描述
《SQL Server 2005高级程序设计》是SQL Server应用开发的经典著作。主要讨论了SQL Server数据库对象、T-SQL基础、键和约束、高级查询、存储和索引、事务和锁、触发器、安全性等内容。书中在讲述每个主题时,都会先给出背景知识,然后讲述自身经验,并在适当时候推出示例,进一步予以说明。
作者简介
Robert Vieira,SQL Server领域的世界权威。他曾经任全球领先的IT管理分析解决方案供应商NetTQ公司的软件架构师,负责产品的架构设计和对其他程序员进行培训和指导。从2006年开始,他成为一名独立咨询师。Vieira在数据库架构和管理上有很深造诣,并乐于向技术社区分享自己的经验和知识,因而享誉世界。他撰写了多部数据库开发方面的畅销书,本书是他的代表作。
目录信息
1.1 本书提供什么
1.2 数据库对象概览
1.2.1 数据库对象
1.2.2 事务日志
1.2.3 最基本的数据库对象:表
1.2.4 模式
1.2.5 文件组
1.2.6 关系图
1.2.7 视图
1.2.8 存储过程
1.2.9 用户定义函数
1.2.10 用户和角色
1.2.11 规则
1.2.12 默认值
1.2.13 用户定义数据类型
1.2.14 全文目录
1.3 SQL Server数据类型
1.4 SQL Server对象标识符
1.4.1 对什么命名
1.4.2 命名规则
1.5 小结
第2章 工具
2.1 联机丛书
2.2 SQL Server配置管理器
2.2.1 服务管理
2.2.2 网络配置
2.2.3 协议
2.2.4 客户端配置
2.3 SQL Server Management Studio
2.3.1 启动
2.3.2 查询窗口
2.4 SQL Server Business Intelligence Development Studio
2.5 SQL Server Integration Services(SSIS)
2.6 Reporting Services
2.7 大容量复制程序
2.8 SQL Server Profiler
2.9 sqlcmd
2.10 小结
第3章 T-SQL基础
3.1 基本的SELECT语句
3.1.1 SELECT语句和FROM子句
3.1.2 JOIN子句
3.1.3 WHERE子句
3.1.4 ORDER BY
3.1.5 使用GROUP BY子句聚集数据
3.1.6 使用HAVING子句在组上放置条件
3.1.7 使用FOR XML子句进行XML输出
3.1.8 使用OPTION子句指定提示
3.1.9 DISTINCT
3.2 用INSERT语句添加数据
3.3 通过UPDATE语句更改现有的数据
3.4 DELETE语句
3.5 替代的联结语法
3.5.1 替代的INNER JOIN
3.5.2 替代的OUTER JOIN
3.5.3 替代的CROSS JOIN
3.6 UNION
3.7 小结
第4章 创建和修改表
4.1 SQL Server中的对象名
4.1.1 模式名(又名:所有权)
4.1.2 数据库名
4.1.3 按照服务器命名
4.2 CREATE语句
4.2.1 CREATE DATABASE
4.2.2 CREATE TABLE
4.3 ALTER语句
4.3.1 ALTER DATABASE
4.3.2 ALTER TABLE
4.4 DROP语句
4.5 使用GUI工具
4.5.1 创建或编辑数据库
4.5.2 创建和编辑表
4.6 小结
第5章 回顾键和约束
5.1 约束的类型
5.1.1 域约束
5.1.2 实体约束
5.1.3 引用完整性约束
5.2 约束的命名
5.3 键约束
5.3.1 主键约束
5.3.2 外键约束
5.3.3 UNIQUE约束
5.4 CHECK约束
5.5 DEFAULT约束
5.5.1 在CREATE TABLE语句中定义DEFAULT约束
5.5.2 在现有的表上添加DEFAULT约束
5.6 禁用约束
5.6.1 创建约束时忽略不正确的数据
5.6.2 临时禁用现有的约束
5.7 规则和默认值:约束的同类
5.7.1 规则
5.7.2 默认值
5.7.3 确定哪个表或数据类型上使用了指定的规则或默认值
5.8 保证数据完整性的触发器
5.9 选择应用使用什么
5.10 小结
第6章 更深入的问题:高级查询
6.1 什么是子查询
6.2 构建嵌套的子查询
6.2.1 使用单值SELECT语句的嵌套查询
6.2.2 使用返回多个值的子查询的嵌套查询
6.2.3 ANY、SOME和ALL运算符
6.3 相关子查询
6.3.1 相关子查询如何工作
6.3.2 WHERE子句中的相关子查询
6.3.3 SELECT列表中的相关子查询
6.4 派生表
6.5 EXISTS运算符
6.6 混合数据类型:CAST和CONVERT
6.7 使用外部调用执行复杂的操作
6.8 性能考虑
6.9 小结
第7章 挑战设计
7.1 规范化回顾
7.1.1 从何处入手
7.1.2 达到第三范式
7.1.3 其他规范形式
7.2 关系
7.3 关系图
7.3.1 几种关系类型
7.3.2 实体框
7.3.3 关系线
7.3.4 终结器
7.4 逻辑设计和物理设计
7.4.1 逻辑模型的用途
7.4.2 逻辑模型的组成部分
7.5 处理基于文件的信息
7.6 子类别
7.6.1 子类别的类型
7.6.2 明了什么是什么——实现子类别
7.6.3 子类别的物理实现
7.6.4 通过子类别增加可扩展性
7.7 数据库重用
7.7.1 可重用数据库的候选
7.7.2 如何分解事物
7.7.3 可重用性的高昂代价
7.8 非规范化
7.9 为可伸缩性进行分区
7.10 SQL Server关系图工具
7.10.1 表
7.10.2 处理约束
7.11 小结
第8章 SQL Server——存储和索引结构
8.1 SQL Server存储
8.1.1 数据库
8.1.2 文件
8.1.3 区段
8.1.4 页
8.1.5 行
8.1.6 全文目录
8.2 理解索引
8.2.1 “B”还是非“B”:B树
8.2.2 在SQL Server中如何访问数据
8.2.3 索引类型和索引导航
8.3 创建、修改和删除索引
8.3.1 CREATE INDEX语句
8.3.2 创建XML索引
8.3.3 随约束隐含创建的索引
8.3.4 ALTER INDEX
8.3.5 DROP INDEX
8.4 明智地选择:决定何时何地使用何种索引
8.4.1 选择性
8.4.2 注意代价:当少变成多时
8.4.3 选择聚集索引
8.4.4 列顺序问题
8.4.5 删除索引
8.4.6 使用数据库引擎优化顾问
8.5 维护索引
8.5.1 碎片
8.5.2 检测碎片
8.6 小结
第9章 视图
9.1 简单视图
9.2 更复杂的视图
9.3 使用T-SQL编辑视图
9.4 删除视图
9.5 审查:显示已有的代码
9.6 保护代码:加密视图
9.7 关于模式绑定
9.8 使用VIEW_METADATA让视图看起来像一个表
9.9 索引(具体化)视图
9.10 分区视图
9.11 小结
第10章 脚本和批处理
10.1 脚本基础
10.1.1 USE语句
10.1.2 声明变量
10.1.3 使用@@ IDENTITY
10.1.4 使用@@ ROWCOUNT
10.2 批处理
10.2.1 批处理中的错误
10.2.2 何时使用批处理
10.3 SQLCMD
10.4 动态SQL:使用EXE命令生成代码
10.5 流控制语句
10.5.1 IF...ELSE语句
10.5.2 ELSE子句
10.5.3 CASE语句
10.5.4 使用WHILE语句进行循环
10.5.5 WAITFOR语句
10.5.6 TRY/CATCH块
10.6 小结
第11章 存储过程和用户定义函数
11.1 创建存储过程:基本语法
11.2 用ALTER更改存储过程
11.3 删除存储过程
11.4 参数
11.4.1 声明参数
11.4.2 创建输出参数
11.5 通过返回值确认成功或失败
11.6 错误处理
11.6.1 应该采取的方式
11.6.2 手工生成错误
11.6.3 添加你自己的自定义错误消息
11.7 存储过程能提供什么
11.7.1 创建可调用的过程
11.7.2 因安全而使用存储过程
11.7.3 存储过程和性能
11.8 扩展存储过程
11.9 递归概览
11.10 用户定义函数
11.10.1 什么是UDF
11.10.2 返回标量值的UDF
11.11 返回表的UDF
11.12 调试
11.12.1 为进行调试而设置SQL Server
11.12.2 启动调试器
11.12.3 调试器的组成
11.12.4 调试器启动后使用
11.13 小结
第12章 事务和锁
12.1 事务
12.1.1 BEGIN TRAN
12.1.2 COMMIT TRAN
12.1.3 ROLLBACK TRAN
12.1.4 SAVE TRAN
12.2 SQL Server日志的工作原理
12.2.1 使用CHECKPOINT命令
12.2.2 在恢复时使用CHECKPOINT
12.2.3 正常的服务器关机
12.2.4 数据库选项的更改
12.2.5 当Truncate on Checkpoint选项活动时
12.2.6 当恢复时间超出Recovery Interval选项的设置时
12.2.7 失败和恢复
12.2.8 隐式事务
12.3 锁和并发
12.3.1 通过锁可以防止什么问题
12.3.2 可锁的资源
12.3.3 锁升级以及锁对性能的影响
12.3.4 锁模式
12.3.5 锁的兼容性
12.3.6 指定特定的锁类型--优化器提示
12.4 设置隔离级别
12.4.1 READ COMMITTED
12.4.2 READ UNCOMMITTED
12.4.3 REPEATABLE READ
12.4.4 SERIALIZABLE
12.5 处理死锁(也称作“A 1205”)
12.5.1 SQL Server是如何判断存在死锁的
12.5.2 死锁牺牲品是如何选择的
12.5.3 避免死锁
12.6 小结
第13章 触发器
13.1 什么是触发器
13.1.1 ON
13.1.2 WITH ENCRYPTION
13.1.3 FOR
· · · · · · (收起)
读后感
用户评价
这本书的价值远超我的预期,我把它视为我在 SQL Server 领域的一本“圣经”。作为一名长期从事 SQL Server 开发的工程师,我一直致力于提升自己的技术能力,但总感觉在某些方面难以突破。这本书的出现,恰好填补了我知识上的空白。书中对于事务、锁和并发控制的深入讲解,让我彻底理解了数据库在多用户环境下如何保证数据的一致性。我学会了如何避免死锁,如何优化事务的隔离级别,以及如何处理并发访问带来的挑战。 此外,书中关于 SQL Server 集成服务(SSIS)和 SQL Server 分析服务(SSAS)的章节,也为我打开了新的视野。虽然我之前对这些组件有所了解,但从未深入研究过。这本书的讲解清晰易懂,让我能够快速掌握 SSIS 的包设计和部署,以及 SSAS 的多维模型构建和查询。这些工具的强大功能,让我能够更高效地处理 ETL 任务和进行数据分析,从而为企业提供更有价值的商业洞察。
这本书给我带来了质的飞跃,让我从一个普通的 SQL Server 用户变成了一个能够驾驭高级特性的专业人士。我曾经在编写复杂的业务逻辑时,常常感到力不从心,无法有效地利用 SQL Server 的内置功能。这本书的出现,让我看到了解决问题的全新方法。作者在书中对 CLR 集成、服务代理和分布式事务的详细阐述,让我能够将 C# 等 .NET 语言的强大能力与 SQL Server 结合起来,实现更灵活、更强大的数据处理和业务逻辑。 我还惊喜地发现,书中还包含了一些关于 SQL Server 性能监控和故障排除的实用技巧。例如,如何利用性能计数器来识别性能瓶颈,如何使用 SQL Server Profiler 来跟踪和分析数据库活动,以及如何通过日志文件来诊断和解决各种错误。这些知识点对于保障数据库的稳定运行至关重要,让我能够更自信地应对生产环境中的各种挑战。总而言之,这本书是一份宝贵的财富,为我的职业发展提供了坚实的基础。
我不得不说,这本书的深度和广度都让我感到惊叹。作为一名刚开始接触 SQL Server 的新手,我原本以为会遇到很多难以理解的概念。但这本书以一种非常友好的方式,将复杂的知识点分解成易于理解的篇章。作者在书中从基础的 SQL 语句开始,逐步深入到高级的数据库管理和开发技术。我学会了如何设计关系型数据库,如何编写高效的 SQL 查询,以及如何利用 SQL Server 的各种工具来管理和维护数据库。 令我印象特别深刻的是,书中对于数据库优化的详细介绍。作者不仅讲解了如何创建和管理索引,还深入探讨了查询优化器的工作原理,以及如何通过分析执行计划来找出性能瓶颈。我还学会了如何进行数据库的备份和恢复,如何配置数据库的安全性,以及如何利用 SQL Server Agent 来自动化一些日常任务。这本书让我对 SQL Server 的学习充满了兴趣和信心,也为我未来的数据库职业生涯奠定了坚实的基础。
这本书的价值难以估量,它为我提供了一个全新的视角来审视 SQL Server 2005。我之前一直以一个“使用者”的身份来使用 SQL Server,而这本书则让我看到了 SQL Server 背后的“构建者”的思考方式。作者在书中对 SQL Server 体系结构、内存管理和I/O子系统的深入剖析,让我对数据库引擎的内部运作机制有了更清晰的认识。我不再只是机械地输入 SQL 命令,而是能够理解它们是如何被处理的,以及为什么某些操作会比其他操作更高效。 书中关于 SQL Server 复制和高可用性解决方案的讨论,也为我提供了宝贵的参考。在实际工作中,确保数据的可用性和一致性是至关重要的。这本书详细讲解了不同类型的复制拓扑,以及如何配置镜像和集群来提高数据库的容错能力。这些知识点让我能够更好地设计和实施满足业务需求的数据库解决方案,从而确保业务的连续性和数据的安全性。
这本书为我打开了 SQL Server 2005 的新世界,让我对数据库开发有了更深刻的认识。我曾经在编写复杂的 SQL 语句时,常常感到力不从心,无法有效地利用 SQL Server 的内置功能。这本书的出现,让我看到了解决问题的全新方法。作者在书中对 SQL Server 2005 中新增的许多强大功能进行了详细的介绍,例如表值函数、公共语言运行时(CLR)集成以及 XML 数据类型。这些新特性极大地扩展了 SQL Server 的应用范围,让我能够编写出更灵活、更强大的应用程序。 我还惊喜地发现,书中还包含了一些关于 SQL Server 性能监控和故障排除的实用技巧。例如,如何利用性能计数器来识别性能瓶颈,如何使用 SQL Server Profiler 来跟踪和分析数据库活动,以及如何通过日志文件来诊断和解决各种错误。这些知识点对于保障数据库的稳定运行至关重要,让我能够更自信地应对生产环境中的各种挑战。总而言之,这本书是一份宝贵的财富,为我的职业发展提供了坚实的基础。
这本书给我带来了前所未有的震撼,它彻底颠覆了我对 SQL Server 数据库管理的认知。我一直认为,掌握基本的 SQL 语句和表设计就足够应付日常工作,但这本书让我看到了数据库开发的广阔天地。作者在书中探讨了许多我从未接触过的领域,例如 XML 在 SQL Server 中的应用、全文检索的配置和优化、以及如何利用 SQL Server Agent 进行自动化管理。这些内容让我意识到,SQL Server 2005 远不止是一个数据存储工具,它更是一个功能强大的应用开发平台。 我尤其对书中关于数据安全和灾难恢复的部分印象深刻。在实际工作中,数据安全和可用性是至关重要的,但往往容易被忽视。这本书详细讲解了如何利用 SQL Server 的安全机制来保护敏感数据,如何配置备份和恢复策略来应对各种意外情况。作者提供了许多可操作的步骤和建议,让我能够更好地保障数据的完整性和可用性。读完这本书,我感觉自己对 SQL Server 的信心倍增,也更加热爱数据库开发这项工作。
这本书的内容深深地触动了我,让我对 SQL Server 2005 的理解达到了前所未有的高度。我原本以为自己已经对 SQL Server 有了相当的掌握,但在阅读了这本书之后,我才意识到自己之前的理解是多么的片面和肤浅。作者以一种循序渐进的方式,将那些看似晦涩难懂的高级概念,抽丝剥茧般地呈现在读者面前。书中对存储过程、触发器、视图和索引等核心组件的深入剖析,让我对如何编写高效、健壮的代码有了全新的认识。特别是关于性能调优的部分,作者提供了一系列实用的技巧和方法,并结合了大量的实际案例,让我能够立刻将所学知识应用到我的工作中。 我曾经在工作中遇到过一些棘手的性能问题,总是找不到根源,也无法有效地解决。通过阅读这本书,我终于明白了其中的原因,并学会了如何利用 SQL Server 提供的工具和技术来诊断和优化查询。书中对于查询执行计划的详细解读,让我能够清晰地看到 SQL Server 是如何处理我的查询的,以及哪些部分是性能瓶颈。我还学会了如何编写更优化的 SQL 语句,如何设计更合理的索引,以及如何利用视图和存储过程来提高代码的可读性和可维护性。这本书不仅仅是一本技术手册,更像是一位经验丰富的导师,在我学习 SQL Server 之路上给予了我宝贵的指导。
这本书给我带来的提升是革命性的,它让我对 SQL Server 的理解进入了一个全新的维度。我曾经在处理大规模数据集和复杂查询时,感到力不从心,常常出现性能瓶颈。这本书的出现,让我看到了解决这些问题的希望。作者在书中对 SQL Server 的查询优化技术、索引策略以及数据分区进行了深入的探讨。我学会了如何利用 SQL Server 的内置工具来分析查询计划,如何设计最优的索引结构,以及如何通过数据分区来提高查询的性能。 此外,书中关于 SQL Server 事务处理和并发控制的讲解,也让我受益匪浅。我明白了如何在多用户环境下保证数据的一致性和完整性,如何避免死锁和数据冲突。这些知识点对于构建健壮、可靠的数据库应用程序至关重要。总而言之,这本书是一部 invaluable 的参考资料,它帮助我成为了一个更出色的 SQL Server 开发者。
这本书简直是为我量身定做的,它解决了我在 SQL Server 开发过程中遇到的许多难题。我一直对 SQL Server 中的高级特性感到好奇,但苦于没有合适的入门资料。这本书的出现,彻底改变了我的现状。作者在书中对 SQL Server 2005 中新增的许多强大功能进行了详细的介绍,例如表值函数、公共语言运行时(CLR)集成以及 XML 数据类型。这些新特性极大地扩展了 SQL Server 的应用范围,让我能够编写出更灵活、更强大的应用程序。 我还特别喜欢书中关于 SQL Server 性能调优的章节。作者提供了许多行之有效的技巧,例如如何识别和解决慢查询,如何优化索引策略,以及如何利用存储过程和视图来提高代码的效率。这些内容让我能够将所学知识立即应用到实际工作中,并取得了显著的成效。这本书不仅提升了我的技术能力,也增强了我对 SQL Server 开发的信心。
这本书让我感受到了 SQL Server 2005 的强大之处,以及它在现代数据管理中的重要地位。我之前一直认为,SQL Server 只是一个简单的数据存储工具,但这本书让我看到了它在企业级应用开发中的巨大潜力。作者在书中对 SQL Server 的高级特性,如 XML 集成、全文检索以及 CLR 支持进行了详尽的阐述。这些功能让我能够将 SQL Server 应用于更广泛的场景,从而为企业提供更全面的解决方案。 我还对书中关于 SQL Server 性能监控和故障排除的技巧印象深刻。作者提供了许多实用的方法,例如如何利用性能计数器来识别性能瓶颈,如何使用 SQL Server Profiler 来跟踪和分析数据库活动,以及如何通过日志文件来诊断和解决各种错误。这些知识点让我能够更自信地应对生产环境中的各种挑战,并确保数据库的稳定运行。
比较全面的入门书籍
翻译不错.
比较全面的入门书籍
简单看了一遍,有机会再看一遍
比较全面的入门书籍