第1章 数据库技术简介 1
1.1 数据库系统应用程序设计方案简介 1
1.1.1 数据库及数据库系统 1
1.1.2 数据库系统应用程序模型 2
1.1.3 常用数据库访问接口 3
1.2 SQL Server 2000简介 5
1.2.1 什么是SQL Server 2000 5
1.2.2 SQL Server 2000的特点 5
1.2.3 SQL Server 2000具有的新特性 6
1.3 SQL Server 2000版本 6
1.3.1 企业版(Enterprise Edition)与开发版(Developer Edition) 6
1.3.2 标准版(Standard Edition) 6
1.3.3 个人版(Personal Edition) 6
1.3.4 MSDE/Desktop Engine 6
1.3.5 SQL Server 2000 CE版 7
1.4 SQL Server 2000的组件 7
1.4.1 SQL Server 2000服务器组件 7
1.4.2 SQL Server 2000客户组件 8
1.5 SQL Server 2000的系统需求 11
1.5.1 安装、运行SQL Server 2000的硬件需求 11
1.5.2 安装、运行SQL Server 2000的软件需求 11
1.6 SQL Server 2000中常用的数据对象 11
1.6.1 数据库对象 11
1.6.2 数据库对象的引用方法 13
1.7 本章小结 13
第2章 SQL Server 2000企业管理器 15
2.1 企业管理器的环境 15
2.2 启动与关闭服务器 15
2.2.1 启动SQL Server 2000 15
2.2.2 暂停、停止SQL Server 2000 17
2.3 注册服务器 17
2.4 连接和断开服务器 19
2.5 配置服务器 19
2.6 本章小结 22
第3章 Transact-SQL语言 23
3.1 SQL语言 23
3.2 Transact-SQL语言概述 24
3.2.1 Transact-SQL编程语言 24
3.2.2 Transact-SQL的元素 24
3.3 数据类型 26
3.3.1 系统提供数据类型 26
3.3.2 用户定义数据类型 29
3.4 变量 30
3.4.1 局部变量 30
3.4.2 全局变量 31
3.5 注释符、运算符和通配符 31
3.5.1 注释符 31
3.5.2 运算符 32
3.5.3 通配符 34
3.6 流程控制命令 34
3.6.1 BEGIN...END 35
3.6.2 IF...ELSE 35
3.6.3 GOTO label 36
3.6.4 RETURN 36
3.6.5 WHILE 36
3.6.6 WAITFOR 37
3.6.7 BREAK和CONTINUE 37
3.6.8 CASE语句 37
3.7 其他命令 39
3.7.1 批处理 39
3.7.2 调试命令 40
3.7.3 切换数据库命令USE 41
3.8 常用函数 41
3.8.1 集合函数 41
3.8.2 数学函数 42
3.8.3 字符串函数 43
3.8.4 日期函数 43
3.8.5 转换函数 44
3.8.6 系统函数 45
3.9 本章小结 45
第4章 管理数据库 47
4.1 创建数据库对象 47
4.1.1 创建新数据库的注意事项 47
4.1.2 文件与文件组 48
4.1.3 使用企业管理器创建数据库 49
4.1.4 使用Transact-SQL语句创建数据库 51
4.1.5 数据库对象属性设置 53
4.2 更改数据库 55
4.2.1 使用企业管理器修改数据库 55
4.2.2 使用Transact-SQL语句修改 56
4.3 删除数据库 58
4.4 压缩数据库 58
4.4.1 压缩整个数据库 59
4.4.2 压缩数据库中的数据文件 59
4.4.3 自动压缩数据库 59
4.5 系统数据库介绍 60
4.5.1 数据库目录系统表 60
4.5.2 Master数据库 61
4.5.3 Msdb数据库 62
4.5.4 Model数据库 62
4.5.5 Tempdb数据库 62
4.5.6 Pubs数据库和Northwind数据库 63
4.6 本章小结 63
第5章 管理数据库表及其完整性 64
5.1 创建数据库表 64
5.1.1 设计数据库表 64
5.1.2 使用SQL Server 2000企业管理器创建表 65
5.1.3 使用Transact_SQL语句创建表 67
5.1.4 创建和使用5种基本约束 74
5.1.5 数据完整性分类 75
5.1.6 PRIMARY KEY约束 75
5.1.7 FORIGN KEY约束 76
5.1.8 UNQIUE约束 77
5.1.9 CHECK约束 78
5.1.10 DEFAULT约束 78
5.2 修改数据库表 79
5.3 查看数据库表 87
5.4 删除数据库表 87
5.5 创建和使用规则 87
5.5.1 创建规则 88
5.5.2 规则应用 88
5.5.3 删除规则 89
5.6 创建和使用默认 91
5.6.1 创建默认 91
5.6.2 默认的应用 91
5.6.3 删除默认值 93
5.7 本章小结 94
第6章 索引 95
6.1 索引简介 95
6.1.1 为什么要建立索引 95
6.1.2 为什么不在每一列上创建索引 96
6.1.3 考虑建立索引的列 97
6.1.4 不考虑建立索引的列 97
6.2 创建索引 98
6.2.1 使用创建索引向导创建索引 98
6.2.2 使用Transact-SQL语句创建索引 98
6.2.3 惟一索引 104
6.2.4 复合索引 105
6.2.5 创建索引的选项 105
6.3 索引信息查看和删除索引 107
6.4 维护索引 107
6.4.1 数据分段 108
6.4.2 DBCC SHOWCONTIG 108
6.4.3 DBCC DBREINDEX语句 114
6.4.4 索引统计值 114
6.4.5 索引分析 115
6.5 本章小结 117
第7章 数据库查询技术 118
7.1 SELECT语句 118
7.1.1 SELECT子句 119
7.1.2 INTO子句 121
7.1.3 FROM子句 121
7.1.4 WHERE子句 123
7.1.5 GROUPBY子句 124
7.1.6 HAVING子句 124
7.1.7 UNION操作符 124
7.1.8 ORDER BY子句 125
7.1.9 COMPUTE子句 125
7.1.10 FOR BROWSE子句 126
7.1.11 OPTION子句 127
7.2 简单查询 129
7.2.1 选择列 129
7.2.2 选择行 130
7.2.3 使用ORDER BY子句对查询结果排序 131
7.2.4 查询结果分组 131
7.2.5 使用聚集函数 132
7.3 连接查询 133
7.3.1 等值连接查询 133
7.3.2 非等值连接查询 134
7.3.3 自连接查询 134
7.3.4 外部连接查询 134
7.3.5 复合条件连接查询 135
7.4 合并查询 136
7.5 嵌套子查询 136
7.6 存储查询结果 139
7.6.1 存储查询结果到表中 139
7.6.2 存储查询结果到变量中 139
7.7 全文检索 139
7.7.1 全文索引和目录 140
7.7.2 创建全文索引目录 141
7.7.3 创建全文索引 141
7.7.4 全文查询 143
7.8 本章小结 146
第8章 数据库更新 147
8.1 添加数据 147
8.1.1 INSERT语法 147
8.1.2 使用INSER INTO...VALUES插入单行数据 149
8.1.3 使用INSERT...SELECT语句插入多行数据 150
8.1.4 使用存储过程插入数据 151
8.2 修改数据 151
8.2.1 UPDATE语法 151
8.2.2 使用UPDATE修改一行数据 156
8.2.3 更新多行数据 157
8.2.4 含子查询的数据更新 157
8.2.5 大量数据的更新 157
8.3 删除数据 158
8.3.1 DELETE语法 158
8.3.2 删除一行数据 160
8.3.3 删除多行数据 160
8.3.4 含子查询的数据删除 160
8.3.5 删除当前游标行数据 160
8.3.6 使用TRUNCATE TABLE命令 160
8.4 使用事务 160
8.4.1 事务由来 160
8.4.2 事务概念 161
8.4.3 事务的使用 161
8.4.4 事务回滚 162
8.5 使用锁 163
8.5.1 锁的概念 163
8.5.2 锁的类型 163
8.5.3 隔离级(Isolation) 164
8.5.4 查看锁 164
8.5.5 死锁(Deadlocking)的预防 164
8.6 本章小结 165
第9章 存储过程和触发器 166
9.1 存储过程概述 166
9.1.1 存储过程的种类 166
9.1.2 存储过程的优势 167
9.2 创建存储过程 167
9.2.1 创建存储过程 167
9.2.2 执行存储过程 169
9.3 修改存储过程 169
9.3.1 修改存储过程 169
9.3.2 删除存储过程 170
9.4 参数化存储过程 170
9.4.1 带输入参数的存储过程 170
9.4.2 指定默认值 171
9.4.3 带输出参数的存储过程 171
9.5 存储过程中的错误处理 172
9.5.1 错误处理 172
9.5.2 用户自定义错误信息 173
9.6 触发器概述 174
9.7 管理触发器 175
9.7.1 创建触发器 175
9.7.2 删除触发器 177
9.8 触发器的工作原理 177
9.8.1 inserted表和deleted表 177
9.8.2 触发器的类型 179
9.8.3 触发器限制 179
9.8.4 触发器的嵌套调用 180
9.9 INSTEAD OF触发器 181
9.9.1 INSTEAD OF INSERT触发器 181
9.9.2 INSTEAD OF UPDATE触发器 183
9.9.3 INSTEAD OF DELETE触发器 183
9.10 触发器的应用 184
9.10.1 Insert型触发器的应用 184
9.10.2 Update型触发器的应用 184
9.10.3 Delete型触发器的应用 185
9.11 触发器的高级应用 185
9.12 本章小结 188
第10章 视图、游标和自定义函数 189
10.1 视图简介 189
10.1.1 视图的概念 189
10.1.2 视图的优缺点 190
10.2 创建和管理视图 190
10.2.1 创建视图 190
10.2.2 管理视图 197
10.2.3 编辑视图 198
10.2.4 删除视图 199
10.3 通过视图管理数据 199
10.3.1 通过视图检索数据 199
10.3.2 通过视图插入数据 200
10.3.3 通过视图删除数据 200
10.3.4 通过视图更改数据 201
10.4 游标简介 202
10.4.1 游标的定义及种类 202
10.4.2 游标声明 203
10.4.3 游标的使用 204
10.5 游标的应用 206
10.5.1 使用游标查询 206
10.5.2 使用游标更改数据 207
10.5.3 使用游标删除数据 208
10.6 创建和使用自定义函数 209
10.6.1 标量函数 209
10.6.2 内嵌表值函数 210
10.6.3 多语句表值函数 212
10.7 本章小结 214
第11章 用户和安全性管理 215
11.1 SQL Server 2000的登录认证 215
11.1.1 身份验证阶段 215
11.1.2 权限验证阶段 215
11.2 管理SQL Server 2000登录 216
11.2.1 验证模式 216
11.2.2 设置验证模式 216
11.2.3 管理登录账号 217
11.3 数据库用户 220
11.3.1 查看数据库用户 220
11.3.2 新增数据库用户 221
11.3.3 修改和删除数据库用户 222
11.4 权限管理 222
11.4.1 权限设置对话框 222
11.4.2 权限设置 223
11.5 角色管理 224
11.5.1 标准角色 224
11.5.2 应用程序角色 227
11.5.3 用户和角色的权限问题 228
11.6 本章小结 229
第12章 数据库备份和恢复 231
12.1 备份和恢复概述 231
12.1.1 备份和恢复概述 231
12.2 数据库备份 234
12.2.1 用企业管理器管理备份设备 234
12.2.2 使用系统存储过程管理备份设备 235
12.2.3 用企业管理器管理备份 236
12.2.4 Transact-SQL语句备份数据库 239
12.3 恢复数据库 242
12.3.1 利用企业管理器恢复数据库 242
12.3.2 使用RESTORE命令进行恢复 244
12.3.3 使用RESTORE命令恢复文件或文件组 245
12.3.4 使用RESTORE命令恢复事务日志 245
12.4 本章小结 246
第13章 数据库应用程序设计概述 247
13.1 ADO和客户端/服务器体系 247
13.1.1 VB6中的数据访问技术 247
13.1.2 数据对象接口 248
13.1.3 数据控件 248
13.1.4 ADO对象模型 248
13.1.5 客户端/服务器体系 249
13.2 ADO.NET和n-层体系 250
13.2.1 ADO.NET简介 250
13.2.2 n-层体系结构 251
13.3 ADO.NET的新功能 252
13.3.1 ADO.NET的新功能 252
13.3.2 数据共享的促进 253
13.4 DataReader和DataSet 254
13.4.1 DataReader 255
13.4.2 DataSet 255
13.4.3 使用DataSet代替DataReader的时机 256
13.5 托管提供程序 257
13.6 用于数据访问的命名空间 259
13.6.1 使用命名空间 259
13.6.2 使用System.Data.SQLClient名称检索数据 261
13.6.3 使用System.Data.OleDb命名空间检索数据 264
13.7 Visual Studio的数据库应用程序工具 265
13.7.1 服务器资源管理器 265
13.7.2 数据工具箱 266
13.7.3 数据适配器配置向导 266
13.8 本章小结 269
第14章 使用ADO.NET 270
14.1 使用数据组件访问数据库 270
14.1.1 用于数据访问的组件 270
14.1.2 Data View对象 275
14.1.3 数据绑定 276
14.2 SqlConnection对象 278
14.2.1 SqlConnection的属性 279
14.2.2 SqlConnection的方法 280
14.2.3 连接池 281
14.3 SqlCommand对象 282
14.3.1 SqlCommand的属性 283
14.3.2 SqlCommand的方法 284
14.3.3 传递存储过程参数 287
14.4 SqlDataReader对象 291
14.4.1 SqlDataReader的属性 291
14.4.2 SqlDataReader的方法 291
14.4.3 SqlDataReader的使用 292
14.5 SqlDataAdapter对象 297
14.5.1 SqlDataAdapter的属性和方法 298
14.5.2 更新数据 299
14.6 DataSet对象 301
14.6.1 DataSet的属性 301
14.6.2 DataSet的方法 302
14.7 DataTable对象 304
14.7.1 DataTable的属性 305
14.7.2 DataTable的方法 306
14.8 DataRow对象 308
14.8.1 DataRow的属性 309
14.8.2 DataRow的方法 310
14.8.3 RowVersion 311
14.9 DataColumn对象 311
14.10 DataRelation对象 315
14.10.1 DataRelation的属性 316
14.10.2 使用DataRelation 317
14.10.3 约束条件 317
14.11 本章小结 319