第1章 数据库系统概述 1
1.1 概述 1
1.1.1 数据库系统的基本概念 1
1.1.2 数据库系统的特点 3
1.2 信息描述与数据模型 4
1.2.1 数据模型及其三要素 4
1.2.2 概念模型及其表示方法 5
1.2.3 实体联系模型 7
1.3 关系数据模型 8
1.4 基本关系运算 10
1.4.1 选择 11
1.4.2 投影 11
1.4.3 连接 11
1.5 关系的完整性规则 11
1.5.1 域完整性 11
1.5.2 实体完整性 11
1.6.1 第一范式(1NF) 12
1.6 关系规范化 12
1.5.3 参照完整性 12
1.6.2 第二范式(2NF) 13
1.6.3 第三范式(3NF) 14
1.6.4 Boyce-Codd范式 15
1.7 数据库设计 15
1.7.1 需求分析 15
1.7.2 概念结构设计 16
1.7.3 逻辑结构设计 16
1.7.4 物理结构设计 17
1.7.5 数据库实施 18
1.7.6 数据库运行维护 18
1.8 综合练习 18
1.8.1 用E-R图设计数据库 18
1.8.2 确定表中的关键字 19
1.8.3 规范化数据 19
习题 20
2.1 SQL Server 2000简介 22
2.1.1 SQL Server 2000概述 22
第2章 SQL Server 2000概述 22
2.1.2 SQL Server 2000特性 23
2.1.3 SQL Server 2000常见版本 24
2.2 SQL Server 2000数据库架构 25
2.2.1 数据库逻辑组件 25
2.2.2 物理数据库构架 27
2.2.3 系统数据库和数据 28
2.3.2 SQL Server 2000的软件需求 30
2.3.1 SQL Server 2000的硬件需求 30
2.3 系统需求 30
2.4 SQL Server 2000的管理和开发工具 31
2.4.1 企业管理器 31
2.4.2 查询分析器 32
2.4.3 服务管理器 34
2.4.4 服务器网络实用工具 35
2.4.5 客户端网络实用工具 36
2.4.6 事件探查器 36
2.5.1 安装SQL Server 2000 37
2.5 上机指导 37
2.4.7 使用联机丛书 37
2.5.2 熟悉SQL Server 2000主要的管理和开发工具 41
习题 44
第3章 Transact-SQL语言概述 46
3.1 SQL语言基本知识 46
3.1.1 Transact-SQL语言概述 46
3.1.2 Transact-SQL语言基本对象 46
3.2 数据类型 48
3.2.1 系统数据类型分类 49
3.2.2 用户定义数据类型 55
3.3 Transact-SQL变量 57
3.3.1 局部变量 57
3.3.2 全局变量 58
3.4 运算符 59
3.4.1 算术运算符 59
3.4.2 赋值运算符 60
3.4.3 按位运算符 60
3.4.4 比较运算符 60
3.4.5 逻辑运算符 61
3.4.7 一元运算符 62
3.4.6 字符串连接运算符 62
3.4.8 运算符优先级 63
3.5 函数 63
3.5.1 数学函数 64
3.5.2 日期/时间函数 64
3.5.3 聚合函数 65
3.5.4 字符串函数 66
3.6 控制流语句 66
3.6.1 BEGIN...END语句 67
3.6.2 IF...ELSE语句 67
3.6.3 CASE语句 68
3.6.4 WHILE语句 70
3.6.5 GOTO语句 71
3.6.6 RETURN语句 71
3.6.7 WAITFOR语句 71
3.7 上机指导 72
3.7.1 创建用户定义函数 72
3.6.8 PRINT语句 72
3.7.2 在SQL Server 2000查询分析器中声明局部变量及验证函数 74
3.7.3 使用SQL Server 2000查询分析器编制、调试、运行程序 75
习题 75
第4章 数据库和表 77
4.1 利用企业管理器创建数据库和表 77
4.1.1 利用企业管理器创建数据库 77
4.1.2 利用企业管理器创建表 79
4.1.3 使用向导创建数据库 81
4.2.1 利用CREATE DATABASE命令创建数据库 85
4.2 命令方式创建数据库和表 85
4.2.2 使用CREATE TABLE命令创建表 88
4.3 修改数据库 92
4.3.1 扩充数据库 93
4.3.2 收缩数据库 94
4.3.3 创建文件组 96
4.3.4 查看数据库 98
4.3.5 数据库更名 100
4.3.6 创建可移动数据库 101
4.4.1 ALTER TABLE语句 102
4.4 更改表结构 102
4.4.2 修改列属性 104
4.4.3 重命名列 106
4.4.4 添加和删除列 107
4.4.5 查看表属性 107
4.4.6 从一个表复制到另一个表 108
4.5 修改表内容 108
4.5.1 INSERT语句 108
4.5.2 UPDATE语句 110
4.5.3 DELETE语句 112
4.6 删除数据库对象 113
4.6.1 删除数据库 114
4.6.2 使用DROP TABLE删除表 114
4.6.3 删除视图等数据库对象 115
4.7 上机指导 115
4.7.1 数据库的基本操作 115
4.7.2 表的基本操作 117
习题 120
5.1 数据完整性的类型 121
第5章 SQL Server的数据完整性 121
5.1.1 强制数据完整性 122
5.1.2 定义约束 122
5.1.3 禁止使用约束 126
5.1.4 删除约束 127
5.2 使用规则 127
5.2.1 创建规则 128
5.2.2 绑定规则 129
5.2.4 使用规则 130
5.2.3 删除规则 130
5.3 使用默认 131
5.3.1 创建默认 131
5.3.2 绑定默认 132
5.3.3 删除默认 133
5.3.4 使用默认 133
5.4 上机指导 134
习题 136
第6章 数据查询 137
6.1 查询语句基本格式 137
6.1.1 SELECT语句的最简单格式 137
6.1.2 SELECT语句的基本格式 138
6.1.3 查询基础知识 142
6.2 条件子句 146
6.2.1 布尔操作符 146
6.2.2 空值查询 147
6.2.3 LIKE操作符 147
6.2.4 IN和BETWEEN操作符 151
6.2.5 条件表达式应用过程中应注意的几点问题 152
6.3 简单子查询 152
6.3.2 子查询和比较操作符 153
6.3.1 产生单值的子查询 153
6.3.3 使用IN和NOT IN操作符 154
6.3.4 使用EXISTS和NOT EXISTS的子查询 155
6.4 连接查询 156
6.4.1 连接的基础知识 156
6.4.2 连接(JOIN)操作符 158
6.4.3 两种实现连接的语法格式 158
6.4.4 几种常见的连接 159
6.4.5 连接与子查询的比较 162
6.5 聚集函数 163
6.5.2 便利聚集 164
6.5.1 GROUP BY子句 164
6.5.3 统计聚集 165
6.5.4 HAVING子句 166
6.5.5 ORDER BY子句 168
6.5.6 COMPUTE BY子句 170
6.6 上机指导 171
习题 177
7.1 索引概述 179
第7章 索引 179
7.2 索引的类型 180
7.3 创建索引 181
7.3.1 在查询分析器中创建索引 181
7.3.2 在企业管理器中创建索引 182
7.4 查看索引信息 184
7.5 索引的维护 185
7.5.1 DBCC SHOWCONTIG语句 185
7.5.2 DBCC INDEXDEFRAG语句 186
7.5.3 使用索引优化向导 188
7.5.4 更改索引名称 189
7.5.5 删除索引 190
7.6 上机指导 191
习题 195
第8章 视图及游标 197
8.1 视图概述 197
8.2 创建视图 198
8.2.1 使用企业管理器创建视图 198
8.2.2 使用Transact-SQL语句创建视图 200
8.3 视图的使用 201
8.3.1 使用视图进行数据查询 201
8.3.2 对视图进行数据修改 202
8.4 修改视图 203
8.4.1 修改视图 203
8.4.2 视图重命名 205
8.4.3 删除视图 205
8.5.1 游标的概念 206
8.5.2 游标的使用 206
8.5 游标 206
8.5.3 游标示例 208
8.6 上机指导 210
习题 213
第9章 存储过程与触发器 215
9.1 存储过程概述 215
9.2 存储过程的创建和执行 216
9.2.1 在企业管理器中创建存储过程 216
9.2.2 在查询分析器中创建存储过程 217
9.3.1 手动执行存储过程 218
9.3 执行存储过程 218
9.3.2 自动执行存储过程 219
9.3.3 存储过程的修改 220
9.3.4 重命名存储过程 221
9.3.5 删除存储过程 222
9.3.6 与存储过程有关的系统存储过程 222
9.4 触发器概述 223
9.4.1 触发器工作原理 223
9.5.2 创建触发器 224
9.5.1 创建触发器前的准备 224
9.5 创建触发器 224
9.4.2 触发器与约束 224
9.5.3 Inserted表的功能 226
9.5.4 Deleted表的功能 226
9.5.5 INSTEAD OF触发器的应用 227
9.5.6 AFTER触发器的应用 228
9.6 管理触发器 230
9.6.1 使用企业管理器显示触发器信息 230
9.6.2 使用系统存储过程查看触发器 230
9.6.3 修改触发器 231
9.6.4 删除触发器 232
9.7 上机指导 232
习题 238
第10章 SQL Server事务处理与并发控制 240
10.1 SQL Server 2000的事务 240
10.1.1 事务简介 240
10.1.2 事务的定义方法 241
10.1.3 嵌套事务 243
10.2.1 并发控制的问题 244
10.2 SQL Server 2000的并发控制 244
10.2.2 锁的类型 246
10.2.3 事务的隔离级别 248
10.2.4 死锁的产生及解决办法 248
10.3 上机指导 249
习题 252
第11章 SQL Server安全与维护 253
11.1 数据库安全许可 253
11.1.1 SQL Server的验证模式 253
11.1.3 利用系统过程创建安全系统 255
11.1.2 设置验证方式 255
11.2 账号和角色 256
11.2.1 账号 256
11.2.2 角色 258
11.3 管理权限 267
11.3.1 语句权限和GRANT语句 267
11.3.2 对象权限和GRANT语句 268
11.3.3 DENY语句 269
11.3.5 解决权限冲突 270
11.3.4 REVOKE语句 270
11.4 上机指导 271
习题 277
第12章 数据库备份与恢复及自动化管理 279
12.1 数据库备份 279
12.1.1 准备备份 279
12.1.2 执行备份 281
12.1.3 备份类型 285
12.2 数据库恢复 287
12.2.1 恢复过程 288
12.2.2 恢复数据库 288
12.2.3 从不同的备份类型中恢复数据库 290
12.2.4 恢复受损的系统数据库 291
12.3 自动化执行系统管理任务 291
12.3.1 SQL Server Agent 291
12.3.2 启动SQL Server Agent 292
12.3.3 配置SQL Server代理 292
12.4.1 创建作业 294
12.4 创建作业和操作员 294
12.4.2 创建操作员 297
12.5 警报 298
12.6 上机指导 303
习题 305
第13章 数据库开发实例 307
13.1 Visual Basic.NET中的数据访问 307
13.1.1 ADO.NET简介 307
13.1.2 ADO.NET对象模型 307
13.2 数据库设计 308
13.2.1 表设计 309
13.2.2 存储过程设计 309
13.3 Visual Basic.NET程序设计 310
13.3.1 创建公用类 310
13.3.2 设计主窗体 313
13.3.3 设计教师基本情况表 315
13.3.4 设计教师电话号码表 319
习题 321
参考文献 322