SQL Server 2005高级程序设计
0推荐 收藏
2.2K阅读
图灵程序设计丛书

SQL Server 2005高级程序设计

Robert Vieira (作者) 董明 (译者)
终止销售
本书是SQL Server应用开发的经典著作。主要讨论了SQL Server数据库对象、T-SQL基础、键和约束、高级查询、存储和索引、事务和锁、触发器、安全性等内容。书中在讲述每个主题时,都会先给出背景知识,然后讲述自身经验,并在适当时候推出示例,进一步予以说明。
本书主要面向中高级数据库开发人员。
纸质书
¥89.00

其他购买方式?

出版信息

  • 书  名SQL Server 2005高级程序设计
  • 系列书名图灵程序设计丛书
  • 执行编辑关于本书的内容有任何问题,请联系 傅志红
  • 出版日期2008-03-07
  • 书  号978-7-115-17079-8
  • 定  价89.00 元
  • 页  数692
  • 开  本16开
  • 出版状态终止销售
  • 原书名Professional SQL Server 2005 Programming
  • 原书号0-764-58434-0

同系列书

  • JavaScript高级程序设计(第4版)

    [美]马特·弗里斯比(Matt Frisbie)   李松峰   译

    本书是JavaScript经典图书的新版。第4版涵盖ECMAScript 2019,全面、深入地介绍了Java...

  • HTTP权威指南

    David Gourley   Brian Totty   Marjorie Sayer   Sailu Reddy   Anshu Aggarwal   陈涓   赵振平   译

    本书是HTTP及其相关核心Web技术方面的权威著作,主要介绍了Web应用程序是如何工作的,核心的因特网协议如何...

  • JavaScript高级程序设计(第3版)

    Nicholas C.Zakas   李松峰   曹力   译

    本书是JavaScript超级畅销书的新版。ECMAScript 5 和HTML5在标准之争中双双胜出,使大量...

  • 计算机科学的基础

    Al Aho   Jeff Ullman   傅尔也   译

    本书全面而详细地阐述了计算机科学的理论基础,从抽象概念的机械化到各种数据模型的建立,用算法、数据抽象等核心思想...

  • Python编程:从入门到实践(第2版)

    埃里克·马瑟斯(Eric Matthes)   袁国忠   译

    本书是针对所有层次Python读者而作的Python入门书。全书分两部分:第一部分介绍用Python编程所必须...

目录

第1章 回顾SQL Server中的对象    1
1.1 本书提供什么    1
1.2 数据库对象概览    1
1.2.1 数据库对象    2
1.2.2 事务日志    4
1.2.3 最基本的数据库对象:表    4
1.2.4 模式    5
1.2.5 文件组    5
1.2.6 关系图    5
1.2.7 视图    7
1.2.8 存储过程    7
1.2.9 用户定义函数    7
1.2.10 用户和角色    8
1.2.11 规则    8
1.2.12 默认值    8
1.2.13 用户定义数据类型    8
1.2.14 全文目录    9
1.3 SQL Server数据类型    9
1.4 SQL Server对象标识符    12
1.4.1 对什么命名    12
1.4.2 命名规则    12
1.5 小结    13
第2章 工具    14
2.1 联机丛书    14
2.2 SQL Server配置管理器    15
2.2.1 服务管理    16
2.2.2 网络配置    16
2.2.3 协议    17
2.2.4 客户端配置    18
2.3 SQL Server Management Studio    20
2.3.1 启动    20
2.3.2 查询窗口    22
2.4 SQL Server Business Intelligence Development Studio    25
2.5 SQL Server Integration Services(SSIS)    26
2.6 Reporting Services    26
2.7 大容量复制程序    26
2.8 SQL Server Profiler    27
2.9 sqlcmd    27
2.10 小结    27
第3章 T-SQL基础    28
3.1 基本的SELECT语句    28
3.1.1 SELECT语句和FROM子句    29
3.1.2 JOIN子句    30
3.1.3 WHERE子句    36
3.1.4 ORDER BY    40
3.1.5 使用GROUP BY子句聚集数据    42
3.1.6 使用HAVING子句在组上放置条件    45
3.1.7 使用FOR XML子句进行XML输出    46
3.1.8 使用OPTION子句指定提示    46
3.1.9 DISTINCT    46
3.2 用INSERT语句添加数据    47
3.3 通过UPDATE语句更改现有的数据    50
3.4 DELETE语句    52
3.5 替代的联结语法    54
3.5.1 替代的INNER JOIN    54
3.5.2 替代的OUTER JOIN    54
3.5.3 替代的CROSS JOIN    55
3.6 UNION    55
3.7 小结    58
第4章 创建和修改表    59
4.1 SQL Server中的对象名    59
4.1.1 模式名(又名:所有权)    59
4.1.2 数据库名    61
4.1.3 按照服务器命名    61
4.2 CREATE语句    62
4.2.1 CREATE DATABASE    62
4.2.2 CREATE TABLE    66
4.3 ALTER语句    72
4.3.1 ALTER DATABASE    72
4.3.2 ALTER TABLE    75
4.4 DROP语句    77
4.5 使用GUI工具    78
4.5.1 创建或编辑数据库    78
4.5.2 创建和编辑表    79
4.6 小结    80
第5章 回顾键和约束    81
5.1 约束的类型    82
5.1.1 域约束    82
5.1.2 实体约束    83
5.1.3 引用完整性约束    83
5.2 约束的命名    83
5.3 键约束    84
5.3.1 主键约束    84
5.3.2 外键约束    87
5.3.3 UNIQUE约束    94
5.4 CHECK约束    95
5.5 DEFAULT约束    96
5.5.1 在CREATE TABLE语句中定义DEFAULT约束    97
5.5.2 在现有的表上添加DEFAULT约束    97
5.6 禁用约束    98
5.6.1 创建约束时忽略不正确的数据    98
5.6.2 临时禁用现有的约束    100
5.7 规则和默认值:约束的同类    102
5.7.1 规则    102
5.7.2 默认值    103
5.7.3 确定哪个表或数据类型上使用了指定的规则或默认值    104
5.8 保证数据完整性的触发器    104
5.9 选择应用使用什么    104
5.10 小结    105
第6章 更深入的问题:高级查询    106
6.1 什么是子查询    107
6.2 构建嵌套的子查询    107
6.2.1 使用单值SELECT语句的嵌套查询    108
6.2.2 使用返回多个值的子查询的嵌套查询    109
6.2.3 ANY、SOME和ALL运算符    110
6.3 相关子查询    111
6.3.1 相关子查询如何工作    111
6.3.2 WHERE子句中的相关子查询    112
6.3.3 SELECT列表中的相关子查询    113
6.4 派生表    115
6.5 EXISTS运算符    117
6.6 混合数据类型:CAST和CONVERT    119
6.7 使用外部调用执行复杂的操作    120
6.8 性能考虑    121
6.9 小结    123
第7章 挑战设计    124
7.1 规范化回顾    124
7.1.1 从何处入手    125
7.1.2 达到第三范式    125
7.1.3 其他规范形式    126
7.2 关系    126
7.3 关系图    127
7.3.1 几种关系类型    128
7.3.2 实体框    128
7.3.3 关系线    129
7.3.4 终结器    129
7.4 逻辑设计和物理设计    131
7.4.1 逻辑模型的用途    131
7.4.2 逻辑模型的组成部分    132
7.5 处理基于文件的信息    133
7.6 子类别    135
7.6.1 子类别的类型    137
7.6.2 明了什么是什么——实现子类别    137
7.6.3 子类别的物理实现    139
7.6.4 通过子类别增加可扩展性    140
7.7 数据库重用    140
7.7.1 可重用数据库的候选    141
7.7.2 如何分解事物    141
7.7.3 可重用性的高昂代价    141
7.8 非规范化    142
7.9 为可伸缩性进行分区    142
7.10 SQL Server关系图工具    143
7.10.1 表    145
7.10.2 处理约束    146
7.11 小结    147
第8章 SQL Server——存储和索引结构    148
8.1 SQL Server存储    148
8.1.1 数据库    148
8.1.2 文件    148
8.1.3 区段    149
8.1.4 页    149
8.1.5 行    151
8.1.6 全文目录    151
8.2 理解索引    152
8.2.1 “B”还是非“B”:B树    153
8.2.2 在SQL Server中如何访问数据    156
8.2.3 索引类型和索引导航    157
8.3 创建、修改和删除索引    163
8.3.1 CREATE INDEX语句    163
8.3.2 创建XML索引    167
8.3.3 随约束隐含创建的索引    168
8.3.4 ALTER INDEX    168
8.3.5 DROP INDEX    170
8.4 明智地选择:决定何时何地使用何种索引    171
8.4.1 选择性    171
8.4.2 注意代价:当少变成多时    171
8.4.3 选择聚集索引    172
8.4.4 列顺序问题    174
8.4.5 删除索引    174
8.4.6 使用数据库引擎优化顾问    174
8.5 维护索引    174
8.5.1 碎片    175
8.5.2 检测碎片    175
8.6 小结    179
第9章 视图    180
9.1 简单视图    180
9.2 更复杂的视图    181
9.3 使用T-SQL编辑视图    185
9.4 删除视图    185
9.5 审查:显示已有的代码    185
9.6 保护代码:加密视图    187
9.7 关于模式绑定    188
9.8 使用VIEW_METADATA让视图看起来像一个表    188
9.9 索引(具体化)视图    188
9.10 分区视图    190
9.11 小结    191
第10章 脚本和批处理    192
10.1 脚本基础    192
10.1.1 USE语句    193
10.1.2 声明变量    193
10.1.3 使用@@ IDENTITY    195
10.1.4 使用@@ ROWCOUNT    196
10.2 批处理    197
10.2.1 批处理中的错误    198
10.2.2 何时使用批处理    199
10.3 SQLCMD    201
10.4 动态SQL:使用EXE命令生成代码    202
10.5 流控制语句    207
10.5.1 IF...ELSE语句    207
10.5.2 ELSE子句    209
10.5.3 CASE语句    211
10.5.4 使用WHILE语句进行循环    216
10.5.5 WAITFOR语句    217
10.5.6 TRY/CATCH块    217
10.6 小结    219
第11章 存储过程和用户定义函数    221
11.1 创建存储过程:基本语法    221
11.2 用ALTER更改存储过程    222
11.3 删除存储过程    223
11.4 参数    223
11.4.1 声明参数    223
11.4.2 创建输出参数    224
11.5 通过返回值确认成功或失败    226
11.6 错误处理    229
11.6.1 应该采取的方式    229
11.6.2 手工生成错误    234
11.6.3 添加你自己的自定义错误消息    236
11.7 存储过程能提供什么    238
11.7.1 创建可调用的过程    238
11.7.2 因安全而使用存储过程    238
11.7.3 存储过程和性能    239
11.8 扩展存储过程    241
11.9 递归概览    241
11.10 用户定义函数    243
11.10.1 什么是UDF    243
11.10.2 返回标量值的UDF    244
11.11 返回表的UDF    246
11.12 调试    252
11.12.1 为进行调试而设置SQL Server    252
11.12.2 启动调试器    253
11.12.3 调试器的组成    254
11.12.4 调试器启动后使用    256
11.13 小结    259
第12章 事务和锁    260
12.1 事务    260
12.1.1 BEGIN TRAN    261
12.1.2 COMMIT TRAN    261
12.1.3 ROLLBACK TRAN    262
12.1.4 SAVE TRAN    262
12.2 SQL Server日志的工作原理    265
12.2.1 使用CHECKPOINT命令    267
12.2.2 在恢复时使用CHECKPOINT    267
12.2.3 正常的服务器关机    267
12.2.4 数据库选项的更改    268
12.2.5 当Truncate on Checkpoint选项活动时    268
12.2.6 当恢复时间超出Recovery Interval选项的设置时    268
12.2.7 失败和恢复    268
12.2.8 隐式事务    270
12.3 锁和并发    270
12.3.1 通过锁可以防止什么问题    271
12.3.2 可锁的资源    274
12.3.3 锁升级以及锁对性能的影响    274
12.3.4 锁模式    275
12.3.5 锁的兼容性    276
12.3.6 指定特定的锁类型——优化器提示    277
12.4 设置隔离级别    279
12.4.1 READ COMMITTED    280
12.4.2 READ UNCOMMITTED    280
12.4.3 REPEATABLE READ    280
12.4.4 SERIALIZABLE    281
12.5 处理死锁(也称作“A 1205”)    281
12.5.1 SQL Server是如何判断存在死锁的    281
12.5.2 死锁牺牲品是如何选择的    282
12.5.3 避免死锁    282
12.6 小结    284
第13章 触发器    285
13.1 什么是触发器    286
13.1.1 ON    287
13.1.2 WITH ENCRYPTION    287
13.1.3 FOR|AFTER与INSTEAD OF子句    287
13.1.4 WITH APPEND    289
13.1.5 NOT FOR REPLICATION    289
13.1.6 AS    290
13.2 为数据完整性规则使用触发器    290
13.2.1 处理来自其他表的要求    290
13.2.2 使用触发器检查更新的差异    292
13.2.3 为定制错误消息使用触发器    294
13.3 触发器的其他常见用途    294
13.3.1 更新摘要信息    294
13.3.2 向非规范化的表中输入数据以用于报告    294
13.3.3 设置条件标记    295
13.4 其他触发器问题    297
13.4.1 触发器可以是嵌套的    297
13.4.2 触发器可以是递归的    298
13.4.3 调试触发器    298
13.4.4 触发器不妨碍修改架构    298
13.4.5 不必删除触发器就能够禁用它    299
13.4.6 触发器激发顺序    299
13.5 INSTEAD OF触发器    301
13.5.1 INSTEAD OF INSERT触发器    302
13.5.2 INSTEAD OF UPDATE触发器    304
13.5.3 INSTEAD OF DELETE触发器    305
13.6 IF UPDATE( ) 与COLUMNS_UPDATED    306
13.6.1 UPDATE( ) 函数    306
13.6.2 COLUMNS_UPDATED( ) 函数    307
13.7 性能考虑    308
13.7.1 触发器是被动的而非先发制人的    308
13.7.2 触发器与激发它们的进程之间没有并发问题    309
13.7.3 保持短小精悍    309
13.7.4 在选择索引时不要忘记了触发器    309
13.7.5 不要试图在触发器中回滚    309
13.8 删除触发器    309
13.9 调试触发器    310
13.10 小结    311
第14章 使用.NET    312
14.1 程序集入门    312
14.2 编译程序集    313
14.3 将程序集上载到SQL Server中    315
14.4 创建基于程序集的存储过程    316
14.5 从程序集中创建标量用户定义函数    317
14.6 创建表值函数    320
14.7 创建聚集函数    323
14.8 从程序集创建触发器    328
14.9 自定义数据类型    332
14.9.1 从程序集创建自己的数据类型    333
14.9.2 访问复杂数据类型    333
14.9.3 删除数据类型    334
14.10 小结    335
第15章 SQL游标    336
15.1 什么是游标    336
15.2 游标的生命期    337
15.3 游标的类型和扩展的声明语法    341
15.3.1 作用域    341
15.3.2 可滚动性    345
15.3.3 游标类型    347
15.3.4 并发性选项    358
15.3.5 游标类型转换检测:TYPE_WARNING    361
15.3.6 FOR < SELECT >    363
15.3.7 FOR UPDATE    363
15.4 在游标中导航:FETCH语句    363
15.5 在游标中修改数据    364
15.6 小结    366
第16章 XML集成    367
16.1 XML数据类型    367
16.1.1 定义一个XML数据类型的列    368
16.1.2 XML模式集合    369
16.1.3 创建、修改和删除XML模式集合    370
16.1.4 XML数据类型方法    372
16.1.5 在模式集合上的强制约束    377
16.2 提取XML格式的关系数据    377
16.2.1 FOR XML子句    377
16.2.2 OPENXML    399
16.3 XML索引的快速提示    403
16.4 HTTP端点    403
16.4.1 安全性    404
16.4.2 HTTP端点方法    404
16.4.3 创建和管理HTTP端点    405
16.4.4 最后的思考    406
16.5 小结    406
第17章 报表服务    407
17.1 报表服务入门    407
17.2 构建简单的报表模型    408
17.2.1 数据源视图    410
17.2.2 创建报表    413
17.3 报表服务器项目    417
17.4 小结    421
第18章 BCP和其他基本的大容量操作    422
18.1 BCP实用工具    422
18.1.1 BCP语法    423
18.1.2 BCP导入    426
18.1.3 BCP导出    429
18.2 格式化文件    430
18.2.1 当列不匹配时    432
18.2.2 使用格式化文件    434
18.2.3 最大化导入的性能    435
18.3 BULK INSERT    435
18.4 OPENROWSET (BULK)    436
18.4.1 ROWS_PER_BATCH    437
18.4.2 SINGLE_BLOB,SINGLE_ CLOB,SINGLE_NCLOB    437
18.5 小结    437
第19章 集成服务    438
19.1 理解问题    438
19.2 包的概述    439
19.2.1 任务    440
19.2.2 主窗口    442
19.2.3 解决方案资源管理器    443
19.2.4 属性窗口    443
19.3 创建简单的包    443
19.4 执行包    448
19.4.1 执行包实用工具的使用    448
19.4.2 在Management Studio中执行    450
19.5 小结    451
第20章 复制    452
20.1 复制基础    453
20.1.1 考虑在什么时候做出复制计划    453
20.1.2 复制角色    455
20.1.3 订阅    456
20.1.4 订阅服务器的类型    456
20.1.5 筛选数据    456
20.2 复制模型    457
20.2.1 快照复制    457
20.2.2 合并复制    460
20.2.3 事务复制    462
20.2.4 立即更新订阅服务器    464
20.2.5 混合复制类型    465
20.3 复制的拓扑结构    465
20.3.1 简单模型    466
20.3.2 混合模型    468
20.4 为复制制订计划    470
20.4.1 涉及的数据    470
20.4.2 移动设备    471
20.5 在Management Studio中设置复制    471
20.5.1 为复制配置服务器    471
20.5.2 配置发布    475
20.5.3 设置订阅服务器(通过Management Studio)    480
20.5.4 使用复制数据库    483
20.6 复制管理对象    485
20.7 小结    485
第21章 全文搜索    487
21.1 全文搜索的架构    488
21.2 设置全文索引和目录    489
21.2.1 为数据库激活全文特性    489
21.2.2 创建、修改、删除和操作全文特性    490
21.2.3 创建、更改、删除和操作全文索引    492
21.2.4 使用旧的语法来创建全文目录    496
21.2.5 针对索引的旧语法    497
21.2.6 关于索引填充的更多内容    498
21.3 全文查询语法    500
21.3.1 CONTAINS    500
21.3.2 FREETEXT    501
21.3.3 CONTAINSTABLE    502
21.3.4 FREETEXTTABLE    503
21.3.5 处理短语    503
21.3.6 布尔操作    503
21.3.7 邻近词    504
21.3.8 权重    504
21.3.9 特定性    505
21.4 干扰词    506
21.5 小结    506
第22章 安全性    507
22.1 安全性基础    508
22.1.1 一个人,一个登录名,一个密码    508
22.1.2 密码过期    509
22.1.3 密码长度和组成    510
22.1.4 尝试登录的次数    511
22.1.5 用户和密码信息的存储    511
22.2 安全性选项    512
22.2.1 SQL Server安全性    512
22.2.2 创建和管理登录    513
22.2.3 Windows集成的安全性    518
22.3 用户权限    519
22.3.1 授予访问特定数据库的权限    519
22.3.2 授予数据库中对象的权限    520
22.3.3 用户权限和语句级别的许可    524
22.4 服务器和数据库角色    526
22.4.1 服务器角色    526
22.4.2 数据库角色    527
22.5 应用程序角色    530
22.5.1 创建应用程序角色    531
22.5.2 向应用程序角色添加许可权限    531
22.5.3 使用应用程序角色    531
22.5.4 删除应用程序角色    532
22.6 更高级的安全性    532
22.6.1 关于guest账户应该怎么办    532
22.6.2 TCP/IP端口设置    533
22.6.3 别使用sa账户    533
22.6.4 让xp_cmdshell保持隐秘    533
22.6.5 不要忘记作为安全手段的视图、存储过程以及UDF    533
22.7 证书和非对称密钥    534
22.7.1 证书    535
22.7.2 非对称密钥    535
22.8 小结    535
第23章 性能优化    536
23.1 什么时候进行优化    537
23.2 索引选择    538
23.3 客户端和服务器端处理    539
23.4 战略上的非规范化    540
23.5 例行维护    540
23.6 组织好存储过程    541
23.6.1 让事务尽量短    541
23.6.2 尽可能使用限制性最少的事务隔离级别    541
23.6.3 必要的话实现多个解决方案    541
23.6.4 尽可能避免使用游标    541
23.7 使用临时表    542
23.8 莫以善小而不为    543
23.9 硬件的考虑    543
23.9.1 独占对服务器的使用    544
23.9.2 I/O密集与CPU密集    544
23.9.3 OLTP和OLAP    548
23.9.4 现场的和非现场的    548
23.9.5 挂起的风险    549
23.9.6 丢失数据    549
23.9.7 性能就是全部吗?    549
23.9.8 驱动器支持    550
23.9.9 理想的系统    550
23.10 排错    550
23.10.1 多种多样的显示计划和STATISTICS    551
23.10.2 数据库一致性检查器(DBCC)    555
23.10.3 查询调控器    556
23.10.4 SQL Server Profiler    556
23.10.5 性能监视器    559
23.11 小结    560
第24章 管理    561
24.1 计划作业    561
24.1.1 创建操作员    562
24.1.2 创建作业和任务    565
24.2 备份和恢复    581
24.2.1 创建备份    581
24.2.2 恢复模式    586
24.2.3 恢复    587
24.3 索引维护    590
24.3.1 ALTER INDEX    591
24.3.2 索引名    591
24.3.3 表名或视图名    591
24.3.4 REBUILD    591
24.3.5 DISABLE    592
24.3.6 REORGANIZE    592
24.4 数据存档    593
24.5 小结    593
第25章 SMO:SQL管理对象    595
25.1 SQL Server SMO的历史    595
25.1.1 SQL分布式管理对象    596
25.1.2 SQL命名空间    596
25.1.3 WMI    596
25.1.4 SMO    597
25.2 SMO对象模型    597
25.3 演练实例    598
25.3.1 开始    599
25.3.2 创建数据库    600
25.3.3 创建表    600
25.4 删除数据库    604
25.5 备份数据库    604
25.6 生成脚本    605
25.7 完整的代码    607
25.8 小结    611
附录A 系统函数    613
附录B 连接性    650
附录C 获得服务    659
  • werw
    04310810501  发表于 2010-05-15 22:58:03
    推荐