目 录
第1章 数据库基础知识 1
1.1 数据库基本概念 1
1.1.1 数据库技术概述 1
1.1.2 数据库相关概念 2
1.1.3 数据库模型 3
1.2 关系型数据库 6
1.2.1 关系型数据库发展历程 6
1.2.2 关系型数据库术语 7
1.2.3 关系型数据库管理系统的功能 8
1.2.4 关系模型完整性规则 8
1.3 数据库基础理论 9
1.3.1 范式 9
1.3.2 实体模型 11
1.4 数据库开发和应用开发 13
1.4.1 数据库开发 13
1.4.2 数据库应用开发 13
1.4.3 两者的关系 14
1.5 SQL Server 2008概述 14
1.5.1 SQL Server 2008简介 14
1.5.2 SQL Server 2008新增特性 15
1.5.3 SQL Server 2008的组成 16
1.6 SQL Server 2008的安装和配置 17
1.6.1 准备安装 17
1.6.2 安装示例 18
1.6.3 配置 22
1.7 SQL Server Management Studio 24
1.8 习题 26
1.8.1 填空题 26
1.8.2 选择题 26
1.9 上机实验 26
实验1 设计数据库模型 26
实验2 安装SQL Server 2008 27
实验3 使用联机丛书 27
实验4 管理SQL Server 2008的服务 27
实验5 注册SQL Server 2008服务器 28
第2章 建立数据库 29
2.1 数据库存储结构 29
2.2 数据库对象 30
2.3 事务日志 31
2.4 系统数据库 31
2.5 创建数据库 33
2.5.1 创建前应考虑的问题 33
2.5.2 在图形界面中创建数据库 33
2.5.3 使用命令方式创建数据库 36
2.6 查看数据库 38
2.6.1 在图形界面中查看数据库 38
2.6.2 使用命令方式查看数据库 39
2.7 修改数据库 40
2.7.1 在图形界面中修改数据库 40
2.7.2 使用命令修改数据库 41
2.8 删除数据库 43
2.8.1 在图形界面中删除数据库 43
2.8.2 使用命令删除数据库 44
2.9 移动数据库 44
2.9.1 分离数据库 44
2.9.2 附加数据库 45
2.10 习题 47
2.10.1 填空题 47
2.10.2 选择题 47
2.11 上机实验 47
实验1 SQL Server 2008中数据库的创建 47
实验2 SQL Server 2008中数据库的修改1 48
实验3 SQL Server 2008中数据库的修改2 48
实验4 SQL Server 2008中数据库的删除 48
实验5 SQL Server 2008中数据库的分离 49
第3章 表的创建 50
3.1 表的概念 50
3.2 表的设计 51
3.2.1 表的数据类型 51
3.2.2 文本和图像数据 54
3.2.3 表结构设计 54
3.3 表的创建 56
3.3.1 在图形界面中创建表 56
3.3.2 使用命令创建表 59
3.4 表数据的操作 61
3.4.1 添加表数据 61
3.4.2 修改表数据 62
3.4.3 删除表数据 63
3.5 查看表信息 63
3.5.1 查看表数据 63
3.5.2 查看表上的约束 64
3.5.3 查看表间关系 64
3.6 表结构的修改 66
3.6.1 在图形界面中修改表 66
3.6.2 使用命令修改表 68
3.7 表的删除 69
3.7.1 在图形界面中删除表 70
3.7.2 使用命令删除表 70
3.8 习题 71
3.8.1 填空题 71
3.8.2 选择题 71
3.9 上机实验 72
实验1 使用命令语句创建表 72
实验2 使用SQL Server Management Studio创建表 73
实验3 创建表数据库关系图 74
实验4 修改表结构 74
实验5 录入数据表记录 74
第4章 数据库查询 77
4.1 SELECT基础语法 77
4.1.1 SELECT子句 78
4.1.2 WHERE子句 80
4.1.3 GROUP BY子句 83
4.1.4 HAVING子句 85
4.1.5 ORDER BY子句 86
4.1.6 COMPUTE子句 87
4.1.7 INTO子句 87
4.2 连接查询 88
4.2.1 内连接 89
4.2.2 外连接 90
4.2.3 交叉连接 92
4.3 子查询 92
4.3.1 IN子查询 93
4.3.2 EXISTS子查询 93
4.3.3 由比较运算符引出的子查询 94
4.4 集合查询 95
4.4.1 使用UNION 95
4.4.2 使用UNION ALL 96
4.4.3 使用EXCEPT和
INTERSECT 96
4.5 插入数据 97
4.5.1 添加数据到一行中所有列 98
4.5.2 为某一列插入默认值 99
4.5.3 用INSERT SELECT插入
多行 100
4.6 更新数据 101
4.6.1 更新特定行数据 102
4.6.2 更新所有行数据 103
4.7 删除数据 103
4.7.1 删除特定行的数据 104
4.7.2 删除整个表数据 105
4.7.3 使用TRUNCATE TABLE 105
4.8 习题 106
4.8.1 填空题 106
4.8.2 选择题 106
4.9 上机实验 107
实验1 练习使用基本的SELECT
语句 107
实验2 在SELECT 语句中使用
WHERE子句 107
实验3 练习分组和排序查询 107
实验4 连接多个表 108
实验5 练习应用子查询 108
实验6 使用UPDATE语句修改
数据 108
实验7 使用DELETE语句删除
数据 108
实验8 使用INSERT语句 109
第5章 T-SQL语言 110
5.1 T-SQL概述 110
5.1.1 T-SQL语言的类型 110
5.1.2 T-SQL语言和SQL语言 111
5.2 常量和变量 112
5.2.1 标识符 112
5.2.2 常量 113
5.2.3 变量 113
5.3 运算符与表达式 117
5.3.1 算术运算符 117
5.3.2 赋值运算符 118
5.3.3 位运算符 118
5.3.4 比较运算符 118
5.3.5 逻辑运算符 119
5.3.6 字符串连接运算符 120
5.3.7 一元运算符 120
5.3.8 运算符优先级 120
5.4 内置函数 121
5.4.1 标量函数 121
5.4.2 聚合函数 128
5.5 流程控制语句 128
5.5.1 BEGIN…END 128
5.5.2 IF…ELSE语句 129
5.5.3 WHILE语句 131
5.5.4 Case语句 132
5.5.5 GOTO语句 134
5.5.6 WAITFOR语句 134
5.5.7 RETURN语句 135
5.5.8 TRY…CATCH语句 135
5.6 批处理 136
5.7 注释 137
5.8 习题 138
5.8.1 填空题 138
5.8.2 选择题 138
5.9 上机实验 139
实验1 练习变量的使用 139
实验2 练习运算符的使用 139
实验3 练习内置函数的使用 140
实验4 练习分支和循环语句 140
实验5 练习CASE、WAITFOR、
GOTO 140
第6章 数据库完整性 141
6.1 数据库完整性的概念 141
6.1.1 数据完整性的分类 141
6.1.2 实现数据完整性的方法 142
6.2 约束 143
6.2.1 默认约束 143
6.2.2 主键约束 145
6.2.3 检查约束 147
6.2.4 唯一约束 150
6.2.5 外键约束 153
6.2.6 非空约束 155
6.2.7 标识属性 157
6.3 缺省 158
6.3.1 缺省的概念 159
6.3.2 创建缺省 159
6.3.3 查看缺省 159
6.3.4 绑定和解除缺省 160
6.3.5 删除缺省 162
6.4 规则 163
6.4.1 规则的概念 163
6.4.2 创建规则 163
6.4.3 查看规则 164
6.4.4 绑定与解除规则 165
6.4.5 删除规则 166
6.5 习题 167
6.5.1 填空题 167
6.5.2 选择题 167
6.6 上机实验 168
实验1 练习规则的使用 168
实验2 练习缺省的使用 168
实验3 练习CHECK约束的使用 169
实验4 练习主键约束的使用 169
实验5 练习外键约束的使用 169
第7章 视图和索引 171
7.1 索引 171
7.1.1 索引概述 171
7.1.2 索引类型 173
7.1.3 索引的优缺点 175
7.2 创建索引 175
7.2.1 创建索引的原则 176
7.2.2 使用图形工具创建索引 176
7.2.3 使用CREATE INDEX创建
索引 177
7.3 修改索引 179
7.3.1 使用图形工具修改索引 179
7.3.2 使用T-SQL语句修改索引 180
7.4 查看索引信息 181
7.5 删除索引 183
7.5.1 在SSMS中删除索引 183
7.5.2 使用T-SQL删除索引 183
7.6 视图 183
7.6.1 视图概述 183
7.6.2 视图类型 184
7.7 创建视图 185
7.7.1 创建视图的原则 185
7.7.2 使用SSMS创建视图 186
7.7.3 使用T-SQL语句创建视图 187
7.8 查看视图信息 190
7.8.1 查看视图基本信息 190
7.8.2 查看视图文本信息 190
7.8.3 查看视图的依赖关系 191
7.9 修改视图信息 191
7.9.1 通过SSMS修改视图信息 191
7.9.2 通过T-SQL修改视图信息 192
7.10 通过视图更新数据 193
7.10.1 使用INSERT插入数据 193
7.10.2 使用UPDATE更新数据 194
7.10.3 使用DELETE删除数据 195
7.11 删除视图 195
7.11.1 使用SSMS删除视图 195
7.11.2 使用T-SQL语句删除视图 196
7.12 习题 196
7.12.1 填空题 196
7.12.2 选择题 196
7.13 上机实验 197
实验1 使用图形工具界面创建
视图 197
实验2 使用T-SQL创建视图 197
实验3 通过视图操作数据 198
实验4 使用T-SQL创建索引 198
实验5 使用图形工具界面修改索引 199
第8章 游标、事务和锁 200
8.1 游标 200
8.1.1 游标概述 200
8.1.2 游标的类型 201
8.1.3 游标的使用 202
8.2 事务 209
8.2.1 事务的基本概念 209
8.2.2 事务的特性 211
8.2.3 事务的分类 212
8.2.4 事务操作的原则 217
8.3 锁 218
8.3.1 锁的粒度 218
8.3.2 锁的分类 219
8.3.3 事务的隔离级别 220
8.3.4 死锁及其处理 221
8.4 习题 222
8.4.1 填空题 222
8.4.2 选择题 223
8.5 上机实验 223
实验1 用于插入操作的事务 223
实验2 使用可更新的游标 224
实验3 创建可滚动的游标 224
实验4 显式事务的使用 224
实验5 创建只进游标 225
第9章 存储过程和触发器 226
9.1 存储过程 226
9.1.1 存储过程概述 226
9.1.2 存储过程的类型 227
9.2 创建存储过程 229
9.2.1 使用T-SQL创建存储过程 229
9.2.2 使用SSMS创建存储过程 231
9.3 执行存储过程 231
9.3.1 使用T-SQL语句执行存储过程 232
9.3.2 使用SSMS执行存储过程 233
9.4 存储过程参数和返回值 234
9.4.1 指定默认参数 234
9.4.2 指定参数方向 235
9.4.3 使用RETURN语句 236
9.5 修改存储过程 237
9.5.1 在SSMS中修改存储过程 237
9.5.2 使用T-SQL语句修改存储过程 237
9.6 删除存储过程 238
9.6.1 使用SSMS删除存储过程 238
9.6.2 使用T-SQL语句删除存储过程 238
9.7 触发器 239
9.7.1 触发器概述 239
9.7.2 触发器类型 240
9.7.3 inserted表和deleted表 240
9.8 创建触发器 241
9.8.1 使用T-SQL语句创建触发器 242
9.8.2 使用SSMS创建触发器 244
9.8.3 INSERT触发器 245
9.8.4 UPDATE触发器 246
9.8.5 DELETE触发器 247
9.8.6 INSTEAD OF触发器 248
9.9 修改触发器 250
9.9.1 使用SSMS修改触发器 250
9.9.2 使用T-SQL语句修改触发器 250
9.10 删除触发器 251
9.10.1 使用SSMS删除触发器 251
9.10.2 使用T-SQL语句删除触发器 251
9.11 关闭和启用触发器 251
9.12 习题 252
9.12.1 填空题 252
9.12.2 选择题 252
9.13 实验指导 253
实验1 简单存储过程的使用 253
实验2 使用返回数据的存储过程的 253
实验3 使用INSERT触发器 254
实验4 使用列级UPDATE触发器 254
实验5 使用INSTEAD OF触发器 254
第10章 SQL Server安全管理 256
10.1 SQL Server 2008安全管理策略 256
10.1.1 SQL Server 2008的安全机制 256
10.1.2 SQL Server 2008登录认证模式 257
10.1.3 配置登录认证模式 258
10.2 用户管理 260
10.2.1 登录账户 260
10.2.2 数据库用户 260
10.2.3 创建和管理登录账户 261
10.2.4 创建和管理数据库用户 265
10.3 角色管理 267
10.3.1 服务器角色 268
10.3.2 数据库角色 270
10.4 权限管理 274
10.4.1 权限的分类 275
10.4.2 权限的操作 275
10.5 习题 279
10.5.1 填空题 279
10.5.2 选择题 279
10.6 上机实验 280
实验1 练习数据库的身份验证 280
实验2 映射数据库用户 280
实验3 为数据库用户创建角色 280
实验4 为数据库用户授权 281
实验5 删除数据库用户和角色 281
第11章 数据库备份与恢复 282
11.1 备份 282
11.1.1 备份概述 282
11.1.2 备份类型 283
11.2 备份设备 283
11.2.1 备份设备的类型 284
11.2.2 创建备份设备 284
11.2.3 查看和删除备份设备 287
11.3 创建数据库备份 287
11.3.1 使用SSMS备份数据库 287
11.3.2 使用BACKUP命令备份数据库 289
11.4 恢复数据库 293
11.4.1 检查点 294
11.4.2 自动恢复数据库 294
11.4.3 手动恢复数据库 295
11.5 习题 299
11.5.1 填空题 299
11.5.2 选择题 299
11.6 上机实验 300
实验1 创建备份设备 300
实验2 备份完整数据库 300
实验3 备份数据库事务日志 300
实验4 备份差异数据库 301
实验5 数据库的恢复 301
第12章 数据库应用开发实例——酒店管理系统 302
12.1 系统需求分析 302
12.2 系统模块设计 303
12.3 设计系统E-R图 305
12.4 创建系统数据库 307
12.5 创建数据表 307
12.6 创建系统视图 311
12.7 创建系统存储过程 312
12.8 创建触发器 315
12.9 ASP.NET程序开发 316
12.9.1 Web.config设置 316
12.9.2 数据库管理模块 317
12.9.3 实体类数据访问层 319
12.9.4 实现房间类型管理 322
12.10 系统运行演示 324
参考文献 327
