第1部分 基础篇 2
第1章 关系型数据库系统简介 2
1.1 概念 2
1.2 数据库理论发展简史 3
1.3 数据库系统模型和结构 3
1.3.1 层次模型 4
1.3.2 网状模型 5
1.3.3 关系模型 5
1.4 数据库管理系统(DBMS) 6
1.5 关系型数据库的规范化 7
1.5.1 关系模式的操作异常 8
1.5.2 数据依赖 8
1.5.3 规范化形式 8
1.6 EAR方法 14
1.6.1 EAR图 14
1.6.2 EAR方法向关系数据库转换 16
1.7 小结 17
第2章 SQL Server 7.0简介 18
2.1 概念 19
2.2 发展史 20
2.3 安全性 21
2.4 数据库 23
2.5 新增功能介绍 24
2.5.1 在服务器管理方面的增强和新功能概述 24
2.5.2 在图形管理界面方面的增强和新功能概述 26
2.5.3 新增内容详细介绍 28
2.6 特征汇总 33
2.7 小结 41
第3章 安装和配置 42
3.1 安装前的要求 42
3.1.1 硬件和软件要求 42
3.1.2 创建SQL Server服务账户 43
3.1.3 安装之前的注意事项 44
3.2 安装选项 44
3.2.1 姓名、公司和序列号 45
3.2.2 转换已经存在的数据 45
3.2.3 安装类型 45
3.2.4 文件位置 46
3.2.5 字符集 47
3.2.6 排列顺序 48
3.2.7 Unicode排列顺序 48
3.2.8 网络协议 49
3.3 安装步骤 50
3.4 验证安装 57
3.4.1 Start菜单中的选项 57
3.4.2 系统数据库和样本数据库 58
3.4.3 目录和文件的位置 59
3.5 启动SQL Server 60
3.5.1 SQL Server Enterprise Manager 60
3.5.2 SQL Server Service Manager 61
3.5.3 控制面板中的Services 61
3.5.4 命令行 61
3.6 注册服务器 61
3.7 配置服务器 65
3.7.1 常用(General)选项卡 67
3.7.2 内存(Memory)选项卡 69
3.7.3 处理器(Processor)选项卡 70
3.7.4 安全性(Security)选项卡 71
3.7.5 连接(Connections)选项卡 71
3.7.6 服务器设置(ServerSettings)选项卡 72
3.7.7 数据库设置(DatabaseSettings)选项卡 73
3.8 小结 74
第4章 SQLServer 7.0的实用程序 75
4.1 实用程序概述 75
4.2 EnterPrise Manager介绍 79
4.3 SQL Server Query Analyzer介绍 81
4.3.1 交互式操作 82
4.3.2 执行规划 85
4.3.3 优化索引 86
4.3.4 分布式查询 87
4.3.5 优化隐藏 88
4.4 小结 89
第5章 SQL Server 7.0的向导工具 91
5.1 向导工具的种类 91
5.2 服务器注册向导 93
5.3 数据库及其对象创建向导 94
5.4 系统管理向导 98
5.5 数据转换服务向导 114
5.6 复制配置和管理向导 115
5.7 数据库升级向导 116
5.8 小结 116
第6章 Transact-SQL语言 118
6.1 执行Transact-SQL语句的工具 118
6.1.1 SQL Server Query Analyzer 119
6.1.2 osql实用程序 120
6.2 Transact-SQL语言的组成部分 122
6.2.1 数据控制语言(DCL) 123
6.2.2 数据定义语言(DDL) 126
6.2.3 数据操纵语言(DML) 127
6.2.4 附加的语言元素 133
6.3 小结 164
第2部分 数据库及数据库对象管理篇 168
第7章 数据库管理 168
7.1 数据库概述 168
7.2 数据库中的对象 169
7.3 文件和文件组 171
7.3.1 文件 171
7.3.2 文件组 171
7.3.3 文件和文件组规则 171
7.3.4 RAID 172
7.3.5 使用文件和文件组的一些建议 173
7.4 事务日志 173
7.5 数据库设计所考虑的内容 173
7.6 数据库的管理 176
7.6.1 空间管理 176
7.6.2 创建数据库 176
7.6.3 管理数据文件和日志文件的增量 186
7.6.4 压缩数据库和数据文件 189
7.6.5 删除数据库 189
7.7 数据库的选项 191
7.8 其他数据库操作 193
7.9 小结 194
第8章 表的管理 195
8.1 表的特征 195
8.2 创建表 196
8.2.1 说明 196
8.2.2 数据类型 197
8.2.3 创建表的CREATE TABLE命令 201
8.2.4 使用SQL Server Enterprise Manager创建表 205
8.3 修改表的结构 209
8.3.1 使用ALTER TABLE语句增加和删除一个列 209
8.3.2 使用Enterprise Manager增加和删除一个列 211
8.4 向表中插入数据 213
8.4.1 INSERT语句的一般用法 213
8.4.2 使用DEFAULT选项 214
8.4.3 插入部分数据 214
8.4.4 用SELECT语句插入数据 215
8.4.5 使用SELECTINTO语句插入数据 215
8.5 在表中检索数据 216
8.6 修改表中的数据 216
8.7 删除表中的数据 219
8.8 删除表 222
8.9 小结 224
第9章 数据检索 225
9.1 SELECT语句概述 225
9.2 选择列 229
9.2.1 重新对列排序 230
9.2.2 使用文字串 230
9.2.3 改变列标题 232
9.3 操纵数据 234
9.3.1 算术运算符 234
9.3.2 数学函数 236
9.3.3 字符串函数 238
9.3.4 日期和时间函数 240
9.3.5 系统函数 241
9.3.6 数据强制转换 244
9.4 选择行 245
9.4.1 比较 246
9.4.2 范围 249
9.4.3 列表 251
9.4.4 字符串模糊匹配 252
9.4.5 逻辑运算符 255
9.5 生成汇总数据行 259
9.5.1 合计函数 259
9.5.2 GROUPBY和HAVING子句 262
9.5.3 COMPUTE和COMPUTE BY子句 269
9.6 连接查询 271
9.6.1 内连接 272
9.6.2 无限制连接 274
9.6.3 外连接 276
9.6.4 自连接 278
9.7 子查询 280
9.8 排序 283
9.9 UNION运算符 285
9.10 小结 286
第10章 索引 288
10.1 索引的概念 288
10.2 索引的类型 289
10.3 创建索引 291
10.3.1 使用CREATE INDEX语句创建索引 292
10.3.2 使用向导创建索引 294
10.3.3 用Index Tuning Wizard创建索引 297
10.3.4 获取索引信息 301
10.4 创建索引的选项 304
10.4.1 使用FILLFACTOR选项 304
10.4.2 使用PAD_INDEX选项 304
10.4.3 使用DROP_EXISTING选项 305
10.5 维护索引 305
10.5.1 DBCC SHOWCONTIG语句 305
10.5.2 索引统计 305
10.5.3 索引分析 306
10.5.4 优化器隐藏 307
10.6 索引性能考虑 307
10.7 小结 308
第11章 数据完整性 309
11.1 数据完整性的概念、类型和实现方式 309
11.1.1 域完整性 309
11.1.2 实体完整性 310
11.1.3 参考完整性 310
11.1.4 数据完整性的实现方式 310
11.2 约束 310
11.2.1 确定使用哪一种类型的约束 310
11.2.2 定义约束 311
11.2.3 使用约束的注意事项 312
11.2.4 DEFAULT约束 314
11.2.5 CHECK约束 315
11.2.6 PRIMARY KEY约束 316
11.2.7 UNIQUE约束 316
11.2.8 FOREIGN KEY约束 317
11.2.9 禁止在已有的数据上检查约束 318
11.2.10 禁止在加载数据时检查约束 319
11.3 DEFAULT(缺省) 320
11.3.1 概念 320
11.3.2 创建DEFAULT 320
11.3.3 绑定DEFAULT 321
11.3.4 删除DEFAULT 322
11.4 RULE(规则) 322
11.4.1 概念 322
11.4.2 创建RULE 322
11.4.3 绑定RULE 322
11.4.4 删除RULE 324
11.5 确定使用哪些完整性方法 324
11.6 小结 325
第12章 视图 326
12.1 什么是视图 326
12.2 视图的优点 327
12.3 创建视图 328
12.3.1 使用CREATE VIEW语句创建视图 328
12.3.2 使用向导创建视图 330
12.3.3 使用SQL Server Enterprise Manager创建视图 332
12.3.4 限制 334
12.3.5 避免使用外连接 335
12.4 修改视图 335
12.5 删除视图 336
12.6 所有者权链 337
12.7 视图定义信息 338
12.8 隐藏视图定义 339
12.9 通过视图修改数据 340
12.10 小结 341
第13章 存储过程 342
13.1 存储过程概述 342
13.1.1 概念 342
13.1.2 优点 343
13.2 存储过程的类型 343
13.2.1 系统存储过程 343
13.2.2 本地存储过程 355
13.2.3 临时存储过程 355
13.2.4 远程存储过程 355
13.2.5 扩展存储过程 355
13.3 存储过程的执行过程 359
13.4 创建存储过程 360
10.4.1 使用CREATE PROCEDURE语句 360
13.4.2 使用向导创建存储过程 362
13.4.3 使用SQL Server Enterprise Manager创建存储过程 364
13.4.4 存储过程的信息 365
13.4.5 创建存储过程的规则 365
13.5 执行存储过程 367
13.6 在存储过程中使用参数 368
13.6.1 使用输入参数 368
13.6.2 用输入参数执行存储过程 369
13.6.3 用输出参数返回值 370
13.7 修改存储过程 371
13.8 删除存储过程 372
13.9 处理错误消息 372
13.10 使用存储过程的建议 374
13.11 小结 374
第14章 触发器 375
14.1 概念 375
14.2 类型 376
14.3 用途 376
14.4 使用触发器的考虑 377
14.5 创建触发器 377
14.5.1 创建触发器 377
14.5.2 几个使用触发器的示例 381
14.6 修改触发器 382
14.7 删除触发器 384
14.8 触发器的工作原理 384
14.8.1 INSERT触发器是如何工作的 384
14.8.2 DELETE触发器是如何工作的 385
14.8.3 UPDATE触发器是如何工作的 386
14.8.4 嵌套触发器是如何工作的 387
14.9 使用触发器的建议 389
14.10 小结 389
第3部分 系统管理篇 392
第15章 安全性管理 392
15.1 认证模式 392
15.1.1 认证模式的类型 392
15.1.2 Windows NT认证模式 393
15.1.3 混合认证模式 394
15.1.4 实现认证模式的步骤 394
15.2 Login管理 396
15.2.1 Login的概念 396
15.2.2 增加Login账户 397
15.3 用户的管理 402
15.4 角色的管理 404
15.4.1 角色的概念 404
15.4.2 固定的服务器角色 405
15.4.3 固定的数据库角色 406
15.4.4 用户自己定义的角色 408
15.5 建议 410
15.6 小结 410
第16章 许可管理 412
16.1 概念 412
16.2 许可的类型 412
16.3 许可的验证 414
16.4 许可的管理 414
16.4.1 许可的授予 415
16.4.2 许可的否定 416
16.4.3 许可的收回 417
16.4.4 许可的信息 418
16.5 小结 419
第17章 数据库备份 421
17.1 备份的概念 421
17.2 为什么要进行备份 422
17.3 动态备份和检查点 422
17.3.1 动态备份 422
17.3.2 理解检查点 423
17.4 备份的许可 423
17.5 备份介质 423
17.6 备份的内容 424
17.7 何时进行备份 424
17.7.1 何时备份系统数据库 424
17.7.2 何时备份用户数据库 425
17.7.3 备份过程中限制的操作 425
17.8 执行备份前的考虑 426
17.9 执行备份 427
17.9.1 创建永久性备份文件 427
17.9.2 创建临时性备份文件 428
17.9.3 用多个备份文件进行备份 429
17.9.4 使用BACKUP语句 430
17.9.5 备份到磁带设备上 431
17.10 备份方法的类型 432
17.10.1 完全数据库备份 432
17.10.2 增量备份 433
17.10.3 事务日志备份 433
17.10.4 数据库文件或者文件组备份 435
17.11 使用图形化工具执行数据库备份 436
17.11.1 使用SQL Server Enterprise Manager 436
17.11.2 使用BackupWizard 438
17.12 备份的策略 441
17.13 性能考虑和建议 442
17.14 小结 442
第18章 数据库恢复 444
18.1 概念 444
18.2 系统在恢复进程中的活动 445
18.3 验证备份 445
18.4 在恢复之前执行指定的任务 446
18.5 恢复数据库的方法 447
18.5.1 使用RESTORE语句恢复数据库 447
18.5.2 使用SQL Server Enterprise Manager恢复数据库 448
18.6 从不同的备份中恢复数据库 450
18.6.1 从完全数据库备份中恢复 450
18.6.2 从增最备份中恢复 450
18.6.3 从事务日志备份中恢复 451
18.6.4 从文件或者文件组备份中恢复 452
18.7 恢复系统数据库 453
18.8 使用数据库文件进行备份和恢复 454
18.9 建议 454
18.10 小结 455
第19章 数据转换 456
19.1 概述 456
19.2 数据转换的方法 457
19.3 数据转换服务(DTS) 458
19.4 DTS数据引入引出向导 459
19.5 使用Bcp前的考虑 464
19.6 Bcp语法形式 465
19.7 Bcp使用说明 469
19.8 小结 469
第20章 数据复制 471
20.1 复制的概念和特点 471
20.2 复制与出版的关系 472
20.3 “推出-拉回”订阅模型结构 473
20.4 复制的类型 474
20.4.1 复制中的服务 474
20.4.2 复制的类型 474
20.5 复制的物理模型 476
20.6 规划和建立复制 477
20.6.1 规划复制 477
20.6.2 建立复制 478
20.6.3 使用Configure Publishing and Distribution Wizard 478
20.6.4 使用Create Publication Wizard 482
20.6.5 使用Pull Subscription Wizard 486
20.7 在异构环境中复制数据 491
20.8 在Internet上复制数据 491
20.9 复制的监测和故障诊断 491
20.10 小结 492
第21章 事务和锁 493
21.1 概述 493
21.2 事务 494
21.2.1 事务的定义 494
21.2.2 事务的工作原理 495
21.3 使用事务的注意事项 496
21.4 事务的类型 496
21.5 锁和锁的作用 497
21.6 空间管理 497
21.7 可以锁定的资源 498
21.8 锁的类型及其兼容性 500
21.9 死锁问题 502
21.10 会话级锁和表级锁 502
21.11 锁的信息 503
21.12 小结 504
第22章 作业和警报 506
22.1 自动化任务概述 506
22.2 作业管理 508
22.2.1 使用SQL Server Enterprise Manager定义作业 508
22.2.2 用Create Job Wizard创建作业 511
22.3 警报管理 514
22.4 自动化的故障 517
22.5 小结 518
第23章 性能监测和调整 519
23.1 概述 519
23.2 监测系统的工具 520
23.2.1 SQL Server Performance Monitor工具 520
23.2.2 SQL Server Profiler工具 521
23.2.3 用Transact-SQL语句监测系统 522
23.3 小结 523
第4部分 应用开发篇 526
第24章 游标管理 526
24.1 概念 526
24.2 游标的用途 528
24.3 游标的工作原理 528
24.4 游标的类型和特征 529
24.5 游标的定义过程 530
24.6 游标的信息 532
24.7 小结 533
第25章 使用DB-Library开发数据库应用程序 534
25.1 概述 534
25.2 将vbsql.ocs添加到Visual Basic中 535
25.3 使用DB-Library for Visual Basic 536
25.3.1 DB-Library初始化 536
25.3.2 枚举SQL Server系统 537
25.3.3 连接到SQL Server 538
25.3.4 用DB-Library检索数据 541
25.3.5 使用动态的SQL创建/删除表 546
25.3.6 使用动态的SQL修改数据 547
25.3.7 使用游标 549
25.3.8 执行存储过程 557
25.3.9 错误处理 559
25.4 高级技术 561
25.4.1 使用多个结果集 561
25.4.2 使用事务 563
25.5 小结 564
第26章 使用DAO和ODBCDirect开发数据库应用程序 565
26.1 DAO概述 565
26.2 DAO体系结构 566
26.3 将DAO3.5参考增加到Visual Basic中 568
26.4 在Visual Basic中使用DAO对象 568
26.4.1 创建DBEngine对象 568
26.4.2 创建Workspace对象 568
26.4.3 连接到SQL Server上 569
26.4.4 用DAO检索数据 573
26.4.5 在Recordset中限制数据 582
26.4.6 关闭Recordset 585
26.4.7 用SQLPassThrough执行动态的SQL 585
26.4.8 用Recordset和SQLPassThrough修改数据 586
26.4.9 使用QueryDef 592
26.4.10 错误处理 601
26.5 终止Jet引擎 602
26.6 DAO和ODBC的常用性能建议 602
26.7 ODBCDirect 603
26.8 ODBCDirect文件 603
26.9 ODBCDirect体系结构 604
26.10 创建DBEngine对象 605
26.11 创建ODBCDirectWorkspace对象 605
26.11.1 使用CreateWorkspace方法 605
26.11.2 设置默认的Workspace类型 605
26.11.3 连接到SQL Server 606
26.11.4 使用ODBCDirect检索数据 609
26.11.5 使用ODBCDirect修改数据 613
26.11.6 使用ODBCDirect执行动态的SQL语句 617
26.11.7 使用QueryDef对象执行存储过程 618
26.11.8 错误处理 619
26.12 使用ODBCDirect的高级数据库功能 620
26.12.1 使用多个结果集 620
26.12.2 异步操作 622
26.12.3 使用事务 623
26.13 小结 625
第27章 使用ODBC API开发数据库应用程序 626
27.1 ODBC概述 626
27.1.1 ODBC应用程序 627
27.1.2 ODBC Driver Manager 627
27.1.3 ODBC驱动程序 627
27.1.4 数据源 627
27.2 配置ODBC数据源 628
27.2.1 ODBC API的使用基础 632
27.2.2 ODBC初始化函数 633
27.2.3 用ODBC API检索数据 639
27.2.4 用ODBC修改数据 643
27.2.5 调用存储过程 648
27.2.6 ODBC错误处理和SQLGetDiagRec 649
27.3 小结 650
第28章 使用RDO开发数据库应用程序 652
28.1 概述 652
28.2 RDO体系结构 653
28.3 使用RDO 654
28.4 将RDO2.0对象增加到Visual Basic中 654
28.5 从Visual Basic中使用RDO对象 654
28.5.1 创建RDO引擎和环境 654
28.5.2 关闭rdoEnvironment 656
28.5.3 使用RDO连接 656
28.5.4 关闭RDO连接 658
28.5.5 使用RDO检索数据 658
28.5.6 使用rdoResultset和预准备语句 661
28.5.7 使用动态的SQL和RDO Execute 663
28.5.8 用RDO游标修改数据 664
28.5.9 使用RDO SQL修改数据 667
28.5.10 错误处理 671
28.6 高级话题 672
28.6.1 使用多个结果集 672
28.6.2 异步查询 674
28.6.3 服务器端游标 675
28.6.4 管理数据并发性 676
28.7 小结 677
第29章 使用OLE DB和ADO开发数据库应用程序 678
29.1 概述 678
29.2 OLE DB体系结构 679
29.3 ADO(ActiveX Data Objects) 679
29.4 OLE DB和ADO文件 680
29.5 ADO体系结构 680
29.6 将ADO2参考增加到Visual Basic中 681
29.7 用Visual Basic使用ADO对象 682
29.7.1 连接到SQL Server 682
29.7.2 使用ADO Recordset检索数据 686
29.7.3 使用预准备的SQL和Command对象 694
29.7.4 用ADO Connection对象执行动态的SQL语句 696
29.7.5 用ADO修改数据 697
29.7.6 用Command对象调用存储过程 704
29.7.7 错误处理 706
29.8 使用ADO的高级数据库功能 707
29.8.1 批修改 707
29.8.2 使用多个结果集 708
29.8.3 使用事务 710
29.8.4 存储二进制数据 712
29.9 小结 715
第5部分 附录 718
附录A 常用的Transact-SQL语句快速参考 718
A.1 数据库管理 718
A.2 表的管理 719
A.3 索引管理 721
A.4 视图管理 722
A.5 触发器管理 722
A.6 存储过程管理 724
A.7 规则管理 725
A.8 缺省管理 725
A.9 查询语句 725
A.10 许可管理 728
附录B 系统表 730
B.1 master系统数据库中的系统表 730
B.2 model系统数据库中的系统表 739
B.3 msdb系统数据库中的系统表 750