
【书名】专家精讲:SQL Server数据库开发
【作者】杨志强著;陈酉玫改编
【ISBN】978-7-121-06733-4
【出版社】电子工业出版社
【出版日期】2008年9月
【定 价】55.00元(含光盘1张)
【宣传语】
附超值光盘,长达150分钟作者亲录真人发音教学视频
本书内含超过100个以上的实际范例
全面整合SQL Server 2005与Visual Studio 2005开发应用
本书包含ADO.NET 2.0新功能与开发范例
每一章节都有实际企业应用案例与完整程序代码
真正为SQL Server 2005开发者设计的书籍
适合初学者、有数据库经验者与参加认证考试者阅读
光盘包含视频讲座(2.5小时)+章节案例(18个)+案例数据库(4个)+章节程序代码(14章)
本书从基本的程序开发所需要的T-SQL开始介绍,包括XML、Web服务、整合.NET开发SQLCLR对象、Service Broker、通知服务、预存程序与用户自定义函数、触发程序到最后的交易锁定处理与多国语系使用等诸多功能,囊括所有程序开发人员必备的数据库整合前端程序开发的功夫。每一章节都会先陈述各数据库功能的使用情境与注意事项,再搭配Visual Studio 2005,结合实际情境开发出完整的操作范例,让读者更能
了解数据库功能与运用在前端应用程序的开发技巧。
●它是入门者学习T-SQL 的实作范例手册
●它是进阶者的实际问题解决范例手册
●它是XML与Web服务的实作范例手册
●它是真正活用SQLCLR的实作范例手册
●它是ADO.NET 2.0的实作范例手册
●它是Visual Studio 2005实作数据库范例手册
●它是SQL Server 2005新功能实作范例手册
【内容简介】
本书是中国台湾微软特约资深顾问杨志强先生的经典著作,是专家精讲:SQL Server 2005数据库系列中的开发篇。本书对SQL Server 2005数据库应用程序开发方面的知识进行了全面而详细的阐述,包括T-SQL数据库语言、XML数据存储语言、Web服务应用程序、SQLCLR对象、多国语系处理等内容。除了解释了设计理念与运作原理外,书中还附有大量实际应用的案例。
本书不仅适用于SQL Server 2005的初级读者,也适用于SQL Server 2005的中高级读者,还适用于专业数据库开发人员、BI开发人员、DBA和一般数据库应用程序开发者。本书是所有SQL Server 2005数据库程序开发人员的案头必备之书。
本书繁体字版名为《SQL Server 2005 資料庫程式開發達人手冊第二版》,由统一元气资产管理股份有限公司出版,版权属统一元气资产管理股份有限公司所有。本中文简体字版由统一元气资产管理股份有限公司授权电子工业出版社独家出版发行。未经本书原版出版者和本书出版者书面许可,任何单位和个人均不得以任何方式或任何手段复制或传播本书的部分或全部。
【推荐序】
Lewis是微软的王牌讲师,有机会跟他合作过的微软同仁,都会称赞他提供的演讲内容、文章、技术支持的高质量与契合企业的需求。同时,他对于SQL Server、Visual Studio、商业智能等领域也有广泛且深入的研究,他的融合企业应用的案例与高超的Demo技巧常赢得许多客户的赞许。“杨志强”这三个字,就等同于内容与票房的保证。相信Lewis的这本书也如我们的经验一样,会带给读者全新的体验。本书还可协助读者快速地融会贯通,并将学到的知识立即应用于工作中。
近3年来,与Lewis的互动对我来说是个美好难忘的经验。从 SQL Server 2000、Oracle to SQL Migration、商业智能、多国语言的开发应用,一直到现在的 SQL Server 2005,Lewis不断回馈给了微软很多正面的产品改进方向,有他的协助与深厚实务经验的注入,使 SQL Server给大家提供了更好的服务,这都是我们非常感激Lewis的地方。另外,他对于每场演讲或团队所提的问题,都能不厌其烦的协助回答,很多人因此成为了他的好朋友。他除了有专业的素养外,还有难能可贵的乐于助人的心,这正是他的可爱与令人折服之处。
“专家精讲:SQL Server数据库开发”在大家的引颈期盼下终于问世了,除了跟大家一起分享这个喜悦外,也借此感谢 Lewis 对 SQL Server 与开发团队的贡献与付出!
中国台湾微软 首席产品营销经理
Laura Huang
【译 者 序】
“十年有成”这句话,是此时笔者学习SQL Server数据库的最佳心情写照。笔者从1995年的Windows NT时代开始接触SQL Server 6.0,然后投入企业担任SQL Server 6.5的数据库管理员与应用程序开发人员,在这个时期笔者接触到的数据库可以说是微软在数据库的启蒙阶段。它虽具备了许多大型数据库的基本特质,如故障转移丛集、复写、自动化排程与整合Windows资源,但是仍缺乏整合性的产品,因此该阶段的技术磨练使笔者学会了数据库的许多处理技巧。
接着经历了1998年SQL Server 7.0的上市,当时也正是XML语言与OLAP概念在台湾起步的阶段,在该阶段笔者使用它开发出了一套超过百人使用的账务系统。笔者在此阶段对数据库最大的感觉,就是SQL Server 7.0的锁定阶段已经从早期的分页锁定细分到行锁定,这样的机制大幅降低了数据使用中的冲突的发生。
微软数据库真正开始让企业用户大幅接受的版本就是SQL Server 2000,它也是现在台湾企业使用最多的数据库。从基本的底层数据库引擎强化增加了64位的版本,到附加产品如分析服务、主动通知与商业智能套件的报表服务、平衡计分卡建置工具的整合,它让原本平淡无奇的数据库,转眼间变成了企业商业活动的好帮手。
在2005年第四季发表的SQL Server 2005版本,对开发人员的冲击远远超过了其他数据库使用角色。首先就是数据库引擎整合了微软最引以为傲的开发平台,即.Net Framework的CLR,这也是笔者跟许多开发人员跃跃欲试的功能。由于CLR的辅助,原本需要前端应用程序处理的运算,譬如加密、解密、文件处理,都已经整合在了数据库引擎中,这样就可以用单一行T-SQL处理以往百行程序的工作。
此外,数据库引擎整合了XML处理机制,它完全符合W3C规范的XQuery与XPath标准,让应用程序开发人员多了一种处理XML的方式。由XML延伸的Web服务功能也在数据库中完全实现了。另外还有许多功能,如MSMQ的继承人Service Broker、全新的T-SQL语法、ADO.NET 2.0等。
当时笔者见到这么多功能时,第一感受就是微软SQL Server 2005数据库真正做到了替开发人员设想。但是,从事多年微软数据库课程教学经验的我,此时脑海中浮现出的却是另一个不一样的想法:这么多的功能要如何由有用的实际案例转换成简易方式,传达给广大的读者呢?这才是真正最艰难的挑战!
笔者开始撰写本书时,一直回想以往所担任的无数次演讲与编写的教学课程,反复地询问自己:数据库开发人员为何仅知道T-SQL,而对其他功能却很陌生呢?大家需要的是什么新功能?这些新功能该怎么应用?有没有实际完整的范例可以参考?这些疑问使笔者在撰写此书的过程中,明确抓到了一个主题方向,就是开发的数据库要能够活用,且一定要有完整的前端开发工具的案例进行辅助说明,只有这样才能加深读者的认同感。
因此,本书内容中每一章节所介绍的新功能,都会根据笔者十年以来积累的问题解决经验,由Visual Studio 2005的开发工具,写出最佳的经典解决方案,以突破仅有单点的数据库开发功能的说明,并扩展到全面性的整合开发工具与案例的应用。
笔者借此手册将多年的数据库与应用程序的解决方案撰写成了文字,并配合介绍了SQL Server 2005的新功能。笔者期望它能成为开发人员的可供实时参考的工具书,并且希望无论是自学人员或是有经验者,能借此专家手册的经验进行交流,以及提升大家的技术,从而成为名符其实的“开发专家”。
台湾台北 杨志强
lewisdba@yahoo.com.tw
【目录】
第1章 数据库开发新语言Transact-SQL 1
1-1 数据库开发语言元素 2
1-1-1 T-SQL的三大语言 3
1-1-2 流程控制语言与变量声明 10
1-2 查询数据的基本技巧 16
1-2-1 SELECT指令的使用技巧 17
1-2-2 用TOP获取特定数据 22
1-2-3 一般数据表表达式(CTE) 24
1-2-4 用PIVOT与UNPIVOT使输出结果转向 29
1-2-5 EXCEPT与INTERSECT的使用 31
1-2-6 用排序函数产生序号 33
1-3 数据变更的基本技巧 34
1-3-1 INSERT指令 35
1-3-2 UPDATE指令 37
1-3-3 DELETE指令 37
1-3-4 取代触发程序的OUTPUT语法 38
1-4 流程控制的专属技巧 40
1-4-1 用TRY…CATCH捕获执行中的异常情况 40
1-4-2 用CURSOR进行逐行数据的处理 45
1-5 案例分享 48
1-5-1 使用CTE与排序函数取代VB.NET以获取特定行数 48
1-5-2 使用CTE和计算多父节点的物料清单 50
第2章 活用数据类型与数据库对象 55
2-1 数据类型及其新增功能 56
2-1-1 系统数据类型 56
2-1-2 大数值数据类型 62
2-1-3 别名数据类型 63
2-2 行结构说明与数据表的管理 64
2-2-1 大数值类型与大对象类型的存储 65
2-2-2 数据表的建立 66
2-2-3 数据表的修改 68
2-3 数据分区函数与分区配置 69
2-3-1 分区函数的建立与运用 69
2-3-2 分区配置的建立 72
2-3-3 分区函数的使用示例 73
2-4 视图对象的基本概念 78
2-4-1 视图的概念与使用时机 78
2-4-2 视图的创建与管理技巧 79
2-4-3 使用视图修改数据 83
2-4-4 索引视图与分区视图 85
2-5 使用同义词解决对象的参考问题 87
2-6 案例分享 89
第3章 数据转换语言XML 95
3-1 XML语言的基本组成架构 96
3-1-1 XML的组成元素与属性 96
3-1-2 XML处理技术 99
3-2 SQL Server 2005 新增的XML技巧 105
3-2-1 XML结合数据库对象的使用 105
3-2-2 XML 架构集合 106
3-3 关系型与层次型数据的互换 109
3-3-1 查询指令配合FOR子句输出XML 110
3-3-2 用OPENXML将XML转换为层次型数据 120
3-4 Xquery 语法 123
3-4-1 用Xquery整合XML数据类型 123
3-4-2 用Xquery更新XML数据 129
3-5 使用XML 索引强化处理 131
3-6 案例分享 133
第4章 XML的高级应用——建立Web服务 139
4-1 Web服务与其应用方向 140
4-1-1 SQL Server 2005 HTTP端点的使用场合 141
4-1-2 SOAP 与WSDL的基本组成要素 143
4-2 SQL Server 2005支持的Web服务 145
4-2-1 端点的概念及建立 145
4-2-2 端点配合预存程序与使用者自定义函数 151
4-2-3 端点的安全性设定 152
4-2-4 端点数据的管理 153
4-3 活用Web服务 154
4-3-1 整合Visual Studio.Net 2003/2005建立应用程序 155
4-3-2 存取预存程序且返回输出数据 156
4-3-3 存取预存程序返回OUTPUT 158
4-3-4 存取预存程序返回RETURN 160
4-3-5 纯量函数的使用 162
4-3-6 用使用者自定义函数返回XML 164
4-3-7 返回RAISERROR错误消息 166
4-3-8 执行不定型批处理 168
4-4 案例分享 169
4-4-1 使用Visual Studio 2003与HTTP端点进行异步处理 170
4-4-2 配合Visual Studio 2005与HTTP端点进行异步处理 174
第5章 用传统T-SQL对象创建高级对象 177
5-1 使用T-SQL开发预存程序 178
5-1-1 使用预存程序的优点 178
5-1-2 程序的开发与管理 179
5-1-3 多种类型的预存程序的使用 186
5-1-4 高级预存程序的应用技巧 191
5-2 系统函数与使用者自定义函数 193
5-2-1 系统函数的分类与使用技巧 194
5-2-2用纯量值函数输出单一返回值 196
5-2-3 用数据表值的使用者自定义函数输出数据集 198
5-2-4 使用者自定义函数的使用技巧 200
5-3 使用T-SQL开发触发程序 205
5-3-1 确保数据一致性程序与触发程序 206
5-3-2 特殊触发程序的使用技巧 212
5-3-3 DDL触发程序 214
5-3-4 触发程序的管理 216
5-4 案例分享 217
5-4-1 使用Visual Basic 2005调用各种预存程序 217
5-4-2 用触发程序检查库存量后发送电子邮件 222
第6章 延伸.NET触角的SQLCLR 225
6-1 .NET Framework 2.0集成数据库的新概念 226
6-1-1 CLR的概念及其使用优势 226
6-1-2 使用CLR开发数据库对象 227
6-2 组件的注册与使用 228
6-2-1 开启CLR功能与安全性设定 229
6-2-2 .NET 组件的概念 229
6-2-3 注册组件与建立对象 230
6-3 SQLCLR组件应用于数据库对象的开发 236
6-3-1 开发SQLCLR预存程序 237
6-3-2 开发SQLCLR使用者自定义函数 239
6-3-3 开发SQLCLR触发程序 241
6-3-4 开发SQLCLR使用者自定义类型 244
6-3-5 开发SQLCLR聚合 249
6-4 案例分享 252
第7章 CLR对象的高级使用技巧 255
7-1 使用CLR预存程序链接数据库 256
7-1-1 使用CLR预存程序链接数据库的技巧 256
7-1-2 CLR预存程序链接Oracle数据库的技巧 263
7-2 使用CLR用户自定义函数的技巧 264
7-2-1 结合RegularExpressions验证电子邮件 265
7-2-2 使用TVF返回操作系统资源 266
7-3 使用CLR使用者定义类型的处理技巧 271
7-4 开发CLR对象的注意事项 275
7-5 案例分享 276
第8章 实现数据的完整性与安全性 281
8-1 数据完整性 282
8-2 声明数据完整性——条件约束 283
8-2-1 Primary Key 条件约束 283
8-2-2 UNIQUE 条件约束 284
8-2-3 CHECK条件约束 285
8-2-4 Default条件约束 286
8-2-5 Foreign Key条件约束 287
8-3 条件约束的特殊使用技巧 291
8-4 数据的安全性 293
8-4-1 数据隐码 293
8-4-2 避免数据隐码的技巧 295
8-5 数据库的加、解密机制 296
8-5-1 EncryptByAsymKey与DecryptByAsymKey操作的使用 296
8-5-2 EncryptByKey与DecryptByKey操作的使用 297
8-5-3 EncryptByCert 与DecryptByCert操作的使用 298
8-6 案例分享 299
第9章 用ADO.NET 2.0进行数据库应用程序的开发 303
9-1 SQLNCLI的作用 304
9-2 用SQL Native Client结合ADO.NET 2.0新功能 311
9-2-1 服务器列举类型 311
9-2-2 链接字符串发生器 312
9-2-3 异步处理 314
9-2-4 多重作用结果集MARS 317
9-2-5 大量复制作业 318
9-2-6 SQL Server的大数值max数据类型 322
9-2-7 更新通知SqlDependency 323
9-2-8 更改SQL Server 2005的登录密码 325
9-2-9 强化DataTable功能 328
9-2-10 用单一API存取多个提供者数据库 328
9-3 案例分享 330
第10章 松散耦合应用程序Service Broker 335
10-1 了解松散耦合程序设计架构 336
10-1-1 Service Broker的服务定义对象 337
10-1-2 Service Broker的交谈组件 338
10-1-3 Service Broker的网络和远程安全性组件 339
10-1-4 Service Broker的安全性架构 340
10-2 Service Broker 对象的建立 341
10-2-1 启用数据库的Service Broker 342
10-2-2 建立消息类型 342
10-2-3 建立合约 344
10-2-4 建立队列 345
10-2-5 建立服务 346
10-3 Service Broker 对话操作 347
10-3-1 传送消息 348
10-3-2 接收消息 349
10-4 案例分享 351
第11章 开发需求响应架构的通知应用程序 355
11-1 通知服务 356
11-1-1 系统架构的解析与设定 357
11-1-2 建立实例与应用程序 364
11-1-3 订阅管理对象 365
11-1-4 事件的收集 366
11-1-5 事件的产生与订阅的配送 367
11-2 建立通知服务应用程序 368
11-2-1 建立通知服务前端应用程序 368
11-2-2 建立事件提供者 369
11-3 案例分享 370
第12章 事务与锁定处理 375
12-1 为何需要事务与锁定 376
12-1-1 ACID概念 376
12-1-2 在企业环境中使用事务与锁定时存在的问题 378
12-2 事务的种类与应用时机 380
12-2-1 隐性事务与使用 382
12-2-2 外显事务的定义与使用 383
12-2-3 分布式事务的定义与使用 390
12-2-4 事务的高级使用技巧 395
12-3 锁定的种类与作用 395
12-3-1 何谓锁定 396
12-3-2 锁定的资源 396
12-3-3 锁定的种类 397
12-3-4 调整隔离等级 397
12-4 快照隔离 402
12-4-1 行版本控制 402
12-4-2 数据库的设定须知与程序的编写 403
12-4-3 快照隔离事务的高级使用 405
12-5 案例分享 408
第13章 多国语系 413
13-1 Unicode的概念 414
13-1-1 编码UCS-2,UTF-16,UTF-8的概念 414
13-1-2 数据库与应用软件支持Unicode的介绍 415
13-2 排序规则设定语系 419
13-2-1 何谓排序规则 419
13-2-2 四种排序规则运用的范围 420
13-2-3 排序规则结尾附加标记的高级应用 426
13-2-4 字符串处理转换函数 430
13-3 排序规则的应用技巧 432
13-3-1 用BCP命令行程序处理Unicode 432
13-3-2 Bulk Insert语句处理Unicode 433
13-4 案例分析 434
13-4-1 数据库多国语系警示消息的多语系设定 434
13-4-2 集成CLR进行繁体与简体的转换 437
第14章 索引的建立与调试 439
14-1 索引的概念及种类的说明 440
14-2 数据存取与索引关联的说明 441
14-2-1 堆栈 442
14-2-2 丛集索引 443
14-2-3 非丛集索引 445
14-3 建立各种索引与索引信息 447
14-3-1 唯一索引 448
14-3-2 复合索引 451
14-3-3 内含行的索引 451
14-3-4 计算列的索引 454
14-3-5 数据分割索引 455
14-4 优化索引性能的管理技巧 457
14-4-1 索引信息的查询 458
14-4-2 索引片段的管理 459
14-5 案例分享 461
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9215421/viewspace-611435/ ,如需转载,请注明出处,否则将追究法律责任。