第1章 SQL Server 2005的运行环境 1
1.1 SQL Server数据库简介 1
1.1.1 SQL Server数据库的发展历程 1
1.1.2 SQL Server 2005的新特性 2
1.2 SQL Server 2005的系统要求 3
1.2.1 SQL Server 2005版本 3
1.2.2 硬件需求 4
1.2.3 软件需求 5
1.2.4 网络需求 5
1.3 SQL Server 2005的管理平台 6
1.3.1 数据库引擎及Management Studio的使用 6
1.3.2 SQL Server 2005的实例 11
1.3.3 新建查询 12
1.3.4 SQL Server 2005的服务项目 15
1.3.5 系统数据库 16
1.4 SQL Server 2005的服务器管理 17
1.4.1 注册服务器 17
1.4.2 启动、暂停和关闭服务器 19
1.4.3 配置服务器 21
1.5 SQL Server 2005的联机丛书和教程 23
1.5.1 联机丛书的使用 23
1.5.2 教程的使用 25
1.6 小结 25
习题 26
第2章 创建与管理数据库 27
2.1 设计数据库 27
2.1.1 基本概念 27
2.1.2 设计数据库的规范化要求 28
2.1.3 数据库的设计 29
2.1.4 数据库的存储 31
2.2 用户数据库的创建与修改 33
2.2.1 用户数据库的创建 33
2.2.2 修改数据库 39
2.2.3 数据库文件的脚本生成 42
2.3 管理数据库 45
2.3.1 查看数据库状态信息 45
2.3.2 数据库的属性设置 47
2.3.3 估算数据库大小 49
2.3.4 收缩数据库 50
2.3.5 分离和附加用户数据库 52
2.3.6 脱机和联机用户数据库 54
2.3.7 删除数据库 55
2.4 文件组的创建 56
2.5 数据库快照和数据分区管理 59
2.5.1 数据库快照 59
2.5.2 数据分区管理 61
2.6 小结 62
习题 62
第3章 表和数据完整性 64
3.1 SQL Server 2005的数据类型 64
3.1.1 数值类型 64
3.1.2 字符类型 65
3.1.3 日期时间类型 66
3.1.4 货币类型 66
3.1.5 其他数据类型 67
3.2 表的创建与维护 68
3.2.1 表的类型 68
3.2.2 表的创建 68
3.2.3 数据浏览 77
3.2.4 表结构的修改 78
3.2.5 表数据的修改 81
3.2.6 删除表 84
3.3 数据的完整性 87
3.3.1 数据完整性的类型 87
3.3.2 约束 88
3.3.3 规则 94
3.3.4 默认值 96
3.3.5 强制数据完整性 98
3.4 数据库关系图 98
3.5 数据的导入和导出 101
3.5.1 数据转换概述 101
3.5.2 导入数据 103
3.5.3 导出数据 104
3.6 小结 104
习题 104
第4章 Transact-SQL语言基础 106
4.1 了解Transact-SQL编程语言 106
4.1.1 Transact-SQL概述 106
4.1.2 Transact-SQL语句分类 108
4.2 Transact-SQL语法要素 108
4.2.1 Unicode码与ASCII码 108
4.2.2 标识符 109
4.2.3 常量 110
4.2.4 变量 112
4.2.5 注释 113
4.3 Transact-SQL运算符 114
4.3.1 算术运算符 114
4.3.2 比较运算符 114
4.3.3 逻辑运算符 115
4.3.4 字符串连接运算符 117
4.3.5 位运算符 117
4.3.6 赋值运算符 117
4.3.7 运算符的优先级 117
4.4 Transact-SQL函数 118
4.4.1 数学函数 118
4.4.2 聚合函数 119
4.4.3 时间日期函数 119
4.4.4 转换函数 120
4.4.5 字符串函数 122
4.4.6 自定义函数 123
4.5 Transact-SQL表达式 123
4.6 Transact-SQL控制流语句 124
4.6.1 IF…ELSE语句 124
4.6.2 BEGIN…END语句 124
4.6.3 WHILE语句 125
4.6.4 CASE语句 126
4.6.5 其他语句 128
4.7 小结 131
习题 132
第5章 数据检索 133
5.1 利用SELECT语句检索数据 133
5.1.1 利用SELECT…FROM语句指定列 135
5.1.2 利用WHERE子句指定行 136
5.1.3 利用INTO子句生成新表 138
5.2 数据过滤 138
5.2.1 空值查询 138
5.2.2 利用比较运算符查询 139
5.2.3 利用字符串运算符查询 140
5.2.4 利用逻辑运算符查询 141
5.2.5 检索一定范围内的值 141
5.2.6 利用列表值检索数据 142
5.3 设置结果集格式 143
5.3.1 改变列名 144
5.3.2 利用ORDER BY子句排序 144
5.3.3 消除重复行 146
5.3.4 利用TOP n输出前n行 147
5.4 GROUP BY子句和HAVING子句 148
5.4.1 GROUP BY子句的使用 148
5.4.2 GROUP BY子句和HAVING子句的联合使用 149
5.5 COMPUTE语句和聚合函数的应用 150
5.5.1 COMPUTE语句的应用 150
5.5.2 聚合函数的应用 152
5.6 小结 154
习题 154
第6章 Transact-SQL语句的高级应用 156
6.1 多表连接 156
6.1.1 连接概述 156
6.1.2 内连接 157
6.1.3 外连接 158
6.1.4 交叉连接 160
6.1.5 连接多个表 160
6.1.6 合并多个结果集 161
6.2 使用子查询 162
6.2.1 子查询介绍 162
6.2.2 利用子查询做表达式 163
6.2.3 利用子查询关联数据 164
6.2.4 利用子查询生成派生表 165
6.2.5 利用子查询修改表数据 165
6.2.6 EXISTS和NOT EXISTS子句 166
6.3 利用游标处理结果集 167
6.3.1 游标的概念 167
6.3.2 游标的运用 168
6.3.3 游标的嵌套 172
6.3.4 查看游标的信息 174
6.4 管理大对象类型数据 177
6.5 小结 182
习题 183
第7章 索引和视图 184
7.1 规划索引 184
7.1.1 索引的用途 184
7.1.2 索引的类型 184
7.1.3 设计索引的基本原则 185
7.2 创建索引 186
7.2.1 利用SQL Server Management Studio创建索引 186
7.2.2 利用CREATE INDEX命令创建索引 187
7.3 维护索引 190
7.3.1 在SQL Server Management Studio中修改索引 190
7.3.2 利用ALTER INDEX命令修改索引 190
7.3.3 检测索引碎片 192
7.3.4 索引重组 192
7.3.5 索引重建 193
7.3.6 查看索引信息 194
7.3.7 删除索引 194
7.4 统计信息及应用 195
7.4.1 统计信息的收集 195
7.4.2 统计信息的创建 196
7.4.3 查看统计信息 197
7.4.4 统计信息的更新 199
7.5 视图的定义 200
7.5.1 视图概念 200
7.5.2 创建视图 200
7.5.3 查看视图信息 206
7.6 视图的修改 209
7.6.1 在SQL Server Management Studio中修改视图 209
7.6.2 利用ALTER VIEW命令修改视图 210
7.6.3 视图重命名 211
7.6.4 删除视图 212
7.7 通过视图修改数据 213
7.8 小结 217
习题 218
第8章 存储过程与触发器 220
8.1 存储过程概述 220
8.1.1 存储过程的类型 220
8.1.2 存储过程的设计原则 221
8.1.3 常用系统存储过程的使用 221
8.2 创建和管理存储过程 222
8.2.1 创建存储过程 222
8.2.2 修改存储过程 225
8.2.3 执行存储过程 226
8.3 触发器概述 227
8.3.1 触发器的作用 227
8.3.2 触发器的分类 227
8.3.3 触发器的工作原理 228
8.3.4 创建触发器前应注意的问题 228
8.4 创建和管理触发器 229
8.4.1 创建触发器 229
8.4.2 修改触发器 231
8.4.3 删除触发器 232
8.4.4 禁用触发器 232
8.4.5 启用触发器 233
8.5 小结 233
习题 234
第9章 事务和锁 236
9.1 事务概述 236
9.1.1 事务的特点 236
9.1.2 事务的分类 237
9.2 管理事务 238
9.2.1 启动事务 238
9.2.2 保存事务 241
9.2.3 提交事务 242
9.2.4 回滚事务 242
9.2.5 自动提交事务 242
9.2.6 事务嵌套 243
9.3 管理并发数据访问 245
9.3.1 并发的影响 245
9.3.2 并发控制的类型 246
9.3.3 事务的隔离级别 247
9.4 管理锁 248
9.4.1 锁的类型 248
9.4.2 可以锁定的资源 249
9.4.3 锁的兼容性 249
9.4.4 死锁 250
9.4.5 显示锁定信息 251
9.5 小结 252
习题 253
第10章 SQL Server 2005的安全管理 254
10.1 SQL Server 2005的安全性机制 254
10.1.1 基本概念 255
10.1.2 权限层次结构 256
10.1.3 查询权限 256
10.2 管理服务器范围的安全性 258
10.2.1 SQL Server 2005的验证模式 258
10.2.2 服务器角色 260
10.2.3 管理登录名 261
10.2.4 管理凭据 265
10.3 管理数据库范围的安全性 266
10.3.1 数据库角色 266
10.3.2 管理数据库用户 273
10.3.3 特殊用户 275
10.4 管理密钥与证书 276
10.4.1 SQL Server 2005的密码系统架构 276
10.4.2 创建密钥 276
10.4.3 创建证书 278
10.4.4 加密实例 279
10.5 权限管理 280
10.5.1 语句权限 280
10.5.2 对象权限 282
10.5.3 解决权限冲突 285
10.6 小结 285
习题 286
第11章 备份和还原 287
11.1 备份和还原概述 287
11.1.1 备份和还原的目的 287
11.1.2 备份的时机 287
11.1.3 备份和恢复的类型 289
11.1.4 备份策略的选择 290
11.1.5 恢复模式的设置 290
11.1.6 在几种不同灾难情况下的恢复 293
11.2 备份数据库 293
11.2.1 创建备份设备 294
11.2.2 执行完整数据库备份 295
11.2.3 执行差异数据库备份 299
11.2.4 执行事务日志备份 300
11.2.5 执行文件或文件组的备份 302
11.3 还原数据库 304
11.3.1 从完整数据库备份中还原 305
11.3.2 从差异数据库备份中还原 307
11.3.3 从事务日志备份中还原 308
11.3.4 从文件或文件组的备份中还原 311
11.4 还原受损的系统数据库 312
11.5 小结 314
习题 315
第12章 系统自动化任务管理 316
12.1 SQL Server代理 316
12.1.1 配置SQL Server代理 317
12.1.2 启动和停止SQL Server代理 319
12.1.3 SQL Server代理的安全性 321
12.2 作业 322
12.2.1 创建作业 322
12.2.2 管理作业 325
12.2.3 查看作业历史 326
12.3 警报 328
12.3.1 创建警报响应SQL Server错误 328
12.3.2 删除警报 330
12.4 操作员 330
12.4.1 创建操作员 331
12.4.2 为操作员分配警报 331
12.5 维护计划 333
12.6 小结 337
习题 338
第13章 复制与性能监视 339
13.1 复制概述 339
13.1.1 复制的发布模型 339
13.1.2 复制类型 340
13.2 创建复制 342
13.2.1 创建发布 342
13.2.2 创建订阅 346
13.2.3 配置分发 351
13.3 管理复制 353
13.3.1 查看和修改发布属性 354
13.3.2 查看和修改项目属性 355
13.3.3 设置历史记录保持期 356
13.3.4 查看发布服务器信息及执行任务 356
13.4 如何查看SQL Server的当前活动 358
13.4.1 监视SQL Server的目的 358
13.4.2 使用活动监视器 359
13.4.3 动态管理对象 362
13.5 系统性能监视器的使用 364
13.5.1 系统性能监视器的运行 364
13.5.2 SQL Server的性能对象 366
13.5.3 监视SQL Server的任务 366
13.5.4 利用SQL Server Profiler工具进行监视 368
13.6 小结 372
习题 372
第14章 SQL Server数据库应用系统开发 373
14.1 数据库应用系统开发的一般过程 373
14.2 数据库应用系统的常用开发工具 375
14.2.1 常用开发工具简介 375
14.2.2 C#程序设计基础 376
14.2.3 利用C#开发数据库应用系统的过程 381
14.3 数据库系统开发实例——日用品销售管理系统 385
14.3.1 开发背景与系统分析 385
14.3.2 系统总体设计 386
14.3.3 数据库设计 387
14.3.4 系统模块功能的实现 389
14.3.5 系统测试 392
14.3.6 系统运行 393
14.4 数据库系统开发的常见问题及处理 397
14.5 小结 400
习题 400