目 录
前言
第1章 SQL Server产品简介 1
1.1 综述 1
1.2 关系数据库基本概念 1
1.3 SQL Server 7 的特点 3
1.4 SQL Server如何与NT服务器
集成 7
1.5 客户/服务器系统数据库结构 9
1.6 SQL Server结构 11
1.7 小结 14
1.8 习题 15
第2章 安装SQL Server 7 17
2.1 综述 17
2.2 安装SQL Server的硬件和软件
需求 17
2.3 在NT服务器上安装 SQL Server 19
2.4 创建SQL Server服务帐号 21
2.5 安装SQL Server的方案 24
2.6 安装SQL Server的配置选项 25
2.7 安装SQL Server的步骤 28
2.8 安装和配置SQL Server客户
端软件 33
2.9 无人值守安装 36
2.10 小结 37
2.11 习题 37
第3章 验证. 配置SQL Server 40
3.1 综述 40
3.2 验证SQL Server是否安装正确 40
3.3 停止和启动SQL Server服务 44
3.3.1 使用SQL Server服务
管理器 44
3.3.2 使用SQL Server企业
管理器 45
3.3.3 使用命令行 46
3.3.4 使用控制面板 47
3.4 注册服务器和创建服务器组 47
3.4.1 注册其他的SQL Server 48
3.4.2 创建服务器组 49
3.5 修改SQL Server的配置 50
3.6 SQL Server的高级配置 55
3.7 第一次配置SQL Server 61
3.8 验证SQL Server 62
3.9 安装中常见的问题 63
3.10 SQL Server系统数据库和
系统表 66
3.11 小结 69
3.12 习题 69
第4章 项目实施中的数据库设计 73
4.1 项目实例概述 73
4.2 数据库的逻辑设计 74
4.2.1 ERA模型 75
4.2.2 从ERA模型到逻辑数据库的转化 76
4.3 逻辑设计的物理实现 77
4.4 设计和实现数据完整性要求 77
4.5 数据库服务器编程 77
4.6 逻辑设计的其他考虑 78
第5章 创建和管理数据库 79
5.1 数据库存储结构 79
5.2 事务日志 80
5.3 估算数据库的空间需求 82
5.3.1 考虑因素 82
5.3.2 估算公式 83
5.4 创建数据库 83
5.4.1 创建新数据库的注意事项 83
5.4.2 使用企业管理器创建数据库 84
5.4.3 使用Transact-SQL语句创建数据库 85
5.5 设置数据库选项 88
5.6 修改数据库的大小 90
5.7 删除数据库 93
5.8 创建数据库对象 93
5.8.1 用户自定义数据类型 93
5.8.2 列的性质—identity属性 98
5.8.3 如何创建表 100
5.9 添加和删除表中的列 104
5.10 小结 105
5.11 习题 105
第6章 SQL语言 108
6.1 查询语言 108
6.2 简单查询 109
6.2.1 检索表中所有列 109
6.2.2 检索表中特定列 109
6.2.3 重排列序 110
6.2.4 用单引号加入字符串 111
6.2.5 改变列标题 111
6.2.6 算术运算符 112
6.2.7 数字型数据和数学函数 113
6.2.8 字符型数据和字符函数 115
6.2.9 操作日期型数据和日期函数 118
6.2.10 系统函数和安全函数 119
6.3 选择行 122
6.3.1 基于比较选择行 123
6.3.2 基于范围选择行 124
6.3.3 基于列表选择行 125
6.3.4 基于字符选择行 125
6.3.5 基于未知值选择行 126
6.3.6 基于多个搜索条件选择行 127
6.3.7 消除重复行 127
6.3.8 结果排序 128
6.4 生成总结数据 129
6.4.1 集合函数 129
6.4.2 GROUP BY和HAVING 129
6.4.3 COMPUTE和COMPUTE BY 132
6.5 连接查询 133
6.5.1 非限制连接 133
6.5.2 自然连接 134
6.5.3 两个以上表的连接 135
6.5.4 自连接 136
6.5.5 外连接 137
6.6 执行子查询 139
6.6.1 单列单值 139
6.6.2 单列多值 140
6.6.3 嵌套SELECT语句总结 140
6.6.4 相关子查询 141
6.6.5 存在性检查 142
6.7 在查询的基础上创建新表 143
6.8 合并数据集 144
6.9 操纵数据 145
6.9.1 插入数据 145
6.9.2 修改数据 146
6.9.3 删除数据 147
6.10 用Transact-SQL编程 148
6.10.1 批和脚本 148
6.10.2 声明局部变量和赋值 149
6.10.3 全局变量 149
6.10.4 流控制语言 150
6.10.5 注释 152
6.10.6 流控制语言示例 152
6.11 游标 154
6.11.1 游标的定义及其优点 154
6.11.2 游标的用法 155
6.11.3 使用游标修改数据 159
6.11.4 游标示例 160
6.11.5 游标小结 162
6.12 为library数据库插入数据 163
6.13 事务 178
6.13.1 什么是事务 178
6.13.2 数据一致性问题 178
6.13.3 如何标识一个事务 179
6.13.4 SQL Server的锁机制 179
6.13.5 事务的隔离级别 180
6.13.6 死锁及其解除 181
6.13.7 事务控制语句 182
6.13.8 报告事务出错 183
6.13.9 在事务中不能包含的语句 184
6.13.10 事务小结 184
第7章 创建SQL Server 7 的索引 186
7.1 综述 186
7.2 索引的概念 186
7.2.1 为什么要建索引 186
7.2.2 为什么不在每一列上建索引 187
7.2.3 考虑建索引的列 188
7.2.4 不考虑建索引的列 188
7.3 创建索引 188
7.3.1 一般语法 188
7.3.2 聚簇索引的类型和特性 189
7.3.3 非聚簇索引的类型和特性 192
7.3.4 唯一索引 194
7.3.5 复合索引 194
7.4 创建索引的选项 195
7.4.1 Fillfactor 195
7.4.2 PAD_INDEX 195
7.4.3 SORTED_DATA_REORG 195
7.5 性能考虑 196
7.5.1 表扫描/索引搜索 196
7.5.2 索引分析 196
7.5.3 优化提示 198
7.5.4 UPDATE STATISTICS 199
7.5.5 DBCC SHOWCONTIG 200
7.6 索引信息的查看和删除索引 205
7.7 全文索引 206
7.7.1 全文操作类系统存储过程 206
7.7.2 全文索引应用示例 210
7.7.3 全文查询 211
7.8 习题 212
第8章 设计SQL Server 7数据完整性 214
8.1 数据完整性概念 214
8.2 实施方法 215
8.3 约束 215
8.3.1 一般语法 215
8.3.2 约束的命名准则 216
8.3.3 缺省约束 216
8.3.4 主键约束 216
8.3.5 检查约束 220
8.3.6 唯一约束 221
8.3.7 外键约束和参照约束 222
8.3.8 创建约束的一些选项 227
8.4 缺省方法 228
8.4.1 缺省的定义 228
8.4.2 创建缺省的语法 228
8.4.3 创建缺省的考虑 229
8.5 规则 230
8.6 绑定 231
8.7 查看缺省和规则的定义脚本 232
8.8 约束和缺省/规则的比较 233
第9章 视图 234
9.1 视图的概念 234
9.2 创建视图 234
9.3 视图的优点和缺点 235
9.4 创建视图的实例 236
9.4.1 水平视图 236
9.4.2 投影视图 236
9.4.3 联合视图 237
9.4.4 包含计算列的视图 240
9.4.5 包含集合函数的视图 240
9.4.6 视图的视图 241
9.5 视图信息的查询 242
9.6 视图的修改和删除 244
9.7 视图的限制 245
第10章 存储过程 246
10.1 存储过程的定义 246
10.2 存储过程的优点 246
10.3 存储过程的创建 246
10.3.1 创建步骤 247
10.3.2 执行存储过程 248
10.3.3 创建带输入参数的存储过程 248
10.3.4 创建带输出参数的存储过程 250
10.3.5 library数据库中的一些存储过程 253
10.4 存储过程的处理 263
10.5 重编译选项 263
10.6 自动执行存储过程 264
10.7 查看. 修改和删除存储过程 264
10.7.1 查看存储过程 264
10.7.2 修改存储过程 265
10.7.3 删除存储过程 266
10.8 扩展存储过程 266
第11章 触发器 269
11.1 触发器的概念和工作原理 269
11.2 创建触发器 269
11.2.1 一般语法 269
11.2.2 插入触发器 270
11.2.3 删除触发器 271
11.2.4 更新触发器 272
11.2.5 触发器的组合 273
11.3 触发器实施数据完整性的实例 274
11.3.1 实现参照完整性 274
11.3.2 实施数据完整性 275
11.3.3 实施业务规则 276
11.4 查看. 修改和删除触发器 276
11.4.1 查看触发器信息 276
11.4.2 修改触发器 277
11.5 触发器的限制和注意事项 278
第12章 实现SQL Server安全性 279
12.1 综述 279
12.2 SQL Server的验证模式 279
12.2.1 NT验证模式 280
12.2.2 混合安全模式 280
12.2.3 设置验证模式 281
12.2.4 NT验证模式对 SQL Server
的影响 281
12.3 创建登录名 282
12.4 管理数据库用户名 285
12.5 删除用户名和登录名 287
12.6 角色 288
12.6.1 服务器角色和数据库角色 289
12.6.2 为服务器角色增加成员 290
12.6.3 为数据库角色增加成员 291
12.6.4 创建数据库角色 292
12.6.5 删除自定义的数据库角色 293
12.6.6 用户. 角色和系统表 294
12.7 权限管理 295
12.7.1 对象和对象属主 295
12.7.2 对象和语句的权限:简介 295
12.7.3 对象权限 296
12.7.4 所有权链 298
12.7.5 语句权限 300
12.7.6 对语句进行授权 301
12.7.7 语句权限和所有权链 302
12.7.8 权限和系统表 302
12.7.9 系统管理员登录名 303
12.7.10 怎样实现对象安全性 303
12.8 小结 304
12.9 习题 305
第13章 调度任务和创建警报 310
13.1 为什么要创建任务和警报 310
13.2 与MAPI相结合 310
13.3 创建任务 311
13.3.1 定义任务名称和类别 312
13.3.2 定义任务的工作步骤和工作内容 312
13.3.3 定义任务的调度信息 314
13.3.4 定义任务完成后的通知者 315
13.3.5 任务示例 315
13.4 警报 316
13.4.1 警报的原理 316
13.4.2 创建警报的通知者 317
13.4.3 修改消息的设置 318
13.4.5 创建警报 320
13.4.6 fail-safe 操作员 325
13.4.7 事件转寄 325
13.5 msdb数据库 326
13.6 小结 327
13.7 习题 327
第14章 备份和管理SQL Server的数据 330
14.1 为什么要备份 330
14.2 什么时候进行备份 331
14.3 备份哪些数据 332
14.4 备份设备的类型 332
14.5 备份设备 333
14.6 管理备份设备 336
14.7 备份数据库 338
14.8 调度备份 341
14.9 与备份一起运行DBCC 342
14.10 备份系统数据库 342
14.11 事务日志 343
14.12 检查点进程 343
14.13 小结 344
14.14 习题 344
第15章 恢复SQL Server的数据 347
15.1 恢复过程概述 347
15.2 自动恢复 347
15.3 恢复用户数据库 348
15.4 恢复系统数据库 352
15.5 小结 353
15.6 习题 354
第16章 传输数据 356
16.1 数据传输服务 356
16.1.1 概述 356
16.1.2 DTS的处理过程 357
16.2 DTS 向导 357
16.3 对象传输 363
16.4 块拷贝程序 366
16.5 在Internet上发布数据 366
16.6 习题 372
第17章 SQL Server复制 373
17.1 分送数据的一些方法 373
17.2 复制的基本术语 373
17.2.1 复制的作用 374
17.2.2 什么是出版者/分送者/订阅者? 374
17.2.3 可以被复制和不可以被复制
的内容 375
17.2.4 复制中服务器的角色 375
17.3 四个复制代理 376
17.4 三种复制类型 377
17.5 复制方案 378
17.6 复制服务器的配置 380
17.7 设置复制 381
17.7.1 指定分送服务器和创建出版物 381
17.7.2 设置分送数据库 386
17.7.3 配置出版者 387
17.7.4 拉式订阅服务器 388
17.7.5 推式订阅服务器 392
17.8 复制使用的系统表 397
17.9 如何使用复制监视器来维护复制 397
17.9.1 什么是复制监视器 397
17.9.2 所有订阅者都无法接收出版服务器
的修改信息 398
17.9.3 订阅者之一无法接收修改信息 399
17.9.4 出版数据库的事务日志即将被
填满或者已经被填满 399
17.10 小结 400
17.11 习题 400
第18章 监视和优化SQL Server 402
18.1 为什么要监视 SQL Server 402
18.2 用日志监视 403
18.2.1 SQL Server错误日志 403
18.2.2 SQL Server错误消息结构 404
18.2.3 Windows NT事件日志 407
18.3 NT性能监视器 408
18.3.1 性能监视器的使用方法 408
18.3.2 磁盘考虑 410
18.4 使用企业管理器中的当前活动 411
18.5 使用DBCC命令 412
18.6 DBCC命令和跟踪标志 418
18.7 SQL Server 配置器 420
18.8 SQL Server 查询分析器 423
18.9 修复被破坏的数据库 426
18.10 创建维护计划 427
18.11 其他常出现的问题 432
18.12 其他信息源 434
18.13 小结 434
18.14 习题 435
附录A 习题答案 438
附录B 嵌入式SQL 语言 445