第1章 数据库基础 1
1.1 数据库系统简介 1
1.1.1 数据库系统基本概念 1
1.1.2 数据库技术的发展阶段 2
1.1.3 数据库系统的组成 4
1.1.4 数据库系统的特征 5
1.1.5 数据库系统结构 5
1.2 数据模型 8
1.2.1 现实世界 9
1.2.2 信息世界 9
1.2.3 机器世界 11
1.3 关系模型 12
1.3.1 关系数据结构 12
1.3.2 关系操作 13
1.3.3 关系完整性约束 14
1.3.4 对关系的限制 14
1.4 关系运算 15
1.5 概念模型与关系模式设计 20
1.5.1 一对一联系 20
1.5.2 一对多联系 21
1.5.3 多对多联系 21
1.5.4 常规实体与弱实体 22
1.5.5 超类与子类 22
1.5.6 数据库设计要点 23
1.6 范式与非范式化 25
1.6.1 范式 25
1.6.2 非范式化 29
1.7 数据库系统设计 30
1.7.1 需求分析阶段 31
1.7.2 概念结构设计阶段 31
1.7.3 逻辑结构设计阶段 32
1.7.4 物理结构设计阶段 33
1.7.5 数据库实施阶段 33
1.7.6 数据库运行和维护阶段 34
实验一 数据库基础 35
第2章 SQL Server安装与简介 43
2.1 SQL Server的发展 43
2.2 SQL Server 2012简介 43
2.3 SQL Server 2016安装 44
2.4 SQL Server Management Studio简介 54
2.5 SQL Server系统数据库 55
2.6 SQL Server系统表 56
实验二 安装SQL Server 2016 57
第3章 数据库管理 58
3.1 Transact-SQL简介 58
3.2 标识符 59
3.3 数据库的组成 60
3.3.1 文件 60
3.3.2 文件组 60
3.3.3 数据库中文件与文件组关系图 60
3.4 创建数据库 61
3.4.1 使用企业管理器创建数据库 61
3.4.2 使用CREATE DATABASE语句创建数据库 61
3.4.3 查看数据库 64
3.5 修改数据库 65
3.5.1 企业管理器修改数据库 65
3.5.2 使用ALTER DATABASE语句修改数据库 65
3.6 删除数据库 68
3.6.1 企业管理器删除数据库 68
3.6.2 使用DROP DATABASE语句修改数据库 68
3.7 分离和附加数据库 69
3.7.1 分离数据库 69
3.7.2 附加数据库 70
3.8 备份和恢复数据库 72
3.8.1 备份数据库 72
3.8.2 恢复数据库 75
实验三 数据库管理 78
第4章 表的管理 80
4.1 SQL Server的数据类型 80
4.2 表的创建及约束规则 84
4.2.1 表的创建 85
4.2.2 完整性约束 86
4.2.3 修改表 92
4.3 表的维护 93
4.3.1 插入数据 93
4.3.2 修改数据 95
4.3.3 删除数据 96
4.4 单表查询 98
4.4.1 SELECT子句 98
4.4.2 SELECT子句中的函数 100
4.4.3 WHERE子句 106
4.4.4 ORDER BY子句 107
4.4.5 GROUP BY子句 108
4.4.6 HAVING子句 109
4.4.7 COMPUTE与COMPUTE BY 110
4.5 连接查询 111
4.5.1 内连接 112
4.5.2 外连接 113
4.5.3 交叉连接 114
4.6 子查询 114
4.6.1 使用比较运算符连接子查询 115
4.6.2 使用IN关键字连接子查询 116
4.6.3 使用ANY、ALL关键字连接子查询 116
4.6.4 使用EXISTS关键字连接子查询 117
4.6.5 相关子查询 119
4.7 集合查询 119
4.8 保存查询结果 120
实验四 表的管理 122
第5章 索引与视图 127
5.1 索引 127
5.1.1 索引概述 127
5.1.2 创建索引 129
5.1.3 维护索引 131
5.2 视图 132
5.2.1 视图概述 132
5.2.2 创建视图 133
5.2.3 使用视图更新数据 134
5.2.4 维护视图 134
实验五 索引与视图 136
第6章 表达式与流程控制 138
6.1 常量 138
6.2 变量 139
6.2.1 局部变量 139
6.2.2 全局变量 140
6.3 运算符与表达式 140
6.4 流程控制 142
6.4.1 BEGIN...END语句 142
6.4.2 IF...ELSE语句 143
6.4.3 CASE语句 144
6.4.4 WHILE语句 145
6.4.5 WHILE...CONTINUE...BREAK语句 146
6.4.6 RETURN语句 147
6.4.7 GOTO语句 147
6.4.8 WAITFOR语句 148
6.5 注释语句 148
实验六 表达式与流程控制 149
第7章 存储过程 151
7.1 存储过程概述 152
7.1.1 存储过程定义 152
7.1.2 存储过程分类 152
7.1.3 存储过程优点 153
7.2 不带参数的存储过程 153
7.2.1 一个场景 154
7.2.2 示例 155
7.3 带有输入参数的存储过程 155
7.3.1 一个场景 156
7.3.2 示例 157
7.4 TRY-CATCH结构 158
7.4.1 语法 158
7.4.2 错误函数 159
7.5 IF EXISTS语句 160
7.6 存储过程的返回值 161
7.6.1 一个场景 161
7.6.2 示例 162
7.7 存储过程的输出参数 163
7.7.1 一个场景 164
7.7.2 示例 165
7.8 存储过程调用存储过程 166
7.9 修改与删除存储过程 167
实验七 存储过程 168
第8章 事务 173
8.1 事务的概念 174
8.2 事务的操作 175
8.3 包含事务的存储过程 175
8.3.1 一个场景 175
8.3.2 示例 176
8.4 设置事务的保存点 179
8.4.1 保存点的概念及语法 179
8.4.2 示例 179
8.5 事务的并发控制 180
8.5.1 并发的概念 181
8.5.2 锁机制 182
8.5.3 设置事务隔离级别 186
实验八 事务 190
第9章 触发器 192
9.1 触发器的概念 192
9.2 DML触发器的分类及幻表 194
9.3 触发器的创建及应用 195
9.3.1 触发器的创建 195
9.3.2 应用 196
9.3.3 修改和删除触发器 201
实验九 触发器 203
第10章 游标 205
10.1 游标的概念 206
10.2 游标的分类 206
10.3 创建游标的步骤 207
10.3.1 声明游标 207
10.3.2 打开游标 208
10.3.3 读取游标数据 208
10.3.4 游标函数 210
10.3.5 关闭游标 210
10.3.6 释放游标 211
10.4 使用游标读取数据到变量中 211
10.5 游标嵌套游标 212
实验十 游标 214
第11章 SQL Server安全管理 216
11.1 SQL Server登录 216
11.1.1 身份验证模式 217
11.1.2 创建登录名 217
11.1.3 修改和删除登录名 220
11.2 数据库用户 222
11.2.1 创建数据库用户 222
11.2.2 修改和删除数据库用户 224
11.3 角色 225
11.3.1 角色分类 225
11.3.2 创建用户自定义的数据库角色 225
11.3.3 管理角色 227
11.4 权限管理 229
11.4.1 权限的分类 229
11.4.2 设置权限 230
实验十一 SQL Server安全管理 235
第12章 综合案例 238
12.1 需求分析 238
12.2 数据库设计 239
12.2.1 概念设计 239
12.2.2 关系模式设计 239
12.2.3 表的创建 242
12.3 T-SQL程序设计 244
12.4 调式与执行 253
第13章 ADO.NET访问数据库 255
13.1 ADO.NET简介 255
13.1.1 ADO.NET的作用 255
13.1.2 ADO.NET的体系结构 256
13.1.3 ADO.NET访问数据库的两种模式 257
13.2 连接模式访问数据库 257
13.2.1 SqlConnection类 257
13.2.2 SqlCommand类 260
13.2.3 SqlDataReader类 262
13.2.4 连接模式访问数据库应用 264
13.3 非连接模式访问数据库 266
13.3.1 SqlDataAdapter类 266
13.3.2 DataSet类 268
13.3.3 非连接模式访问数据库应用 269
参考文献 272
附录 SchoolInfo数据库相关表结构 273