第1章 数据库系统概述 1
1.1 数据库系统的基本概念 1
1.1.1 信息与数据库 1
1.1.2 结构化查询语言 2
1.1.3 数据库管理系统 3
1.1.4 数据库系统 4
1.2 关系数据库理论 6
1.2.1 概念模型及其表示方法 6
1.2.2 数据模型 8
1.2.3 关系运算 9
1.3 设计数据库 11
1.3.1 数据库设计的规范化 11
1.3.2 数据库设计的主要内容 12
1.3.3 数据库设计的过程 13
1.4 小结 14
习题 14
第2章 SQL Server 2016的运行环境 16
2.1 SQL Server数据库简介 16
2.1.1 SQL Server数据库的发展历程 16
2.1.2 SQL Server 2016的新特性 17
2.2 SQL Server 2016的系统要求 19
2.2.1 SQL Server 2016版本 20
2.2.2 SQL Server 2016安装环境要求 20
2.3 SQL Server 2016的管理平台 21
2.3.1 数据库引擎及Management Studio的使用 21
2.3.2 SQL Server 2016的实例 27
2.3.3 新建查询 27
2.3.4 SQL Server 2016的服务项目 29
2.3.5 系统数据库 31
2.4 SQL Server 2016的服务器管理 32
2.4.1 注册服务器 32
2.4.2 启动、暂停和关闭服务器 33
2.4.3 配置服务器 34
2.5 SQL Server 2016的联机丛书和教程 37
2.5.1 SQL Server文档的使用 37
2.5.2 MSDN论坛的使用 37
2.5.3 SQL Server教程的使用 38
2.6 小结 39
习题 39
第3章 创建与管理数据库 41
3.1 数据库对象和数据库文件 41
3.1.1 数据库的基本概念 41
3.1.2 数据库的常用对象 43
3.1.3 数据库的存储 43
3.2 用户数据库创建与修改 45
3.2.1 用户数据库的创建 45
3.2.2 修改数据库 51
3.2.3 数据库文件的脚本生成 54
3.3 管理数据库 57
3.3.1 查看数据库状态信息 57
3.3.2 数据库的属性设置 59
3.3.3 估算数据库大小 61
3.3.4 收缩数据库 62
3.3.5 分离和附加用户数据库 64
3.3.6 联机和脱机用户数据库 66
3.3.7 删除数据库 67
3.4 文件组的创建 68
3.5 数据库快照和数据分区管理 71
3.5.1 数据库快照 71
3.5.2 数据分区管理 73
3.6 小结 74
习题 74
第4章 表和数据完整性 76
4.1 SQL Server 2016的数据类型 76
4.1.1 数值类型 76
4.1.2 字符类型 77
4.1.3 日期和时间类型 78
4.1.4 货币类型 78
4.1.5 其他数据类型 79
4.2 表的创建与维护 80
4.2.1 有关表的基础知识 80
4.2.2 表的创建 81
4.2.3 数据浏览 89
4.2.4 表结构的修改 90
4.2.5 表数据的修改 92
4.2.6 删除表 95
4.3 数据的完整性 97
4.3.1 数据完整性的类型 97
4.3.2 约束 98
4.3.3 规则 104
4.3.4 默认值 106
4.3.5 强制数据完整性 107
4.4 数据库关系图 108
4.5 数据的导入和导出 111
4.5.1 数据转换概述 111
4.5.2 导入数据 112
4.5.3 导出数据 114
4.6 小结 114
习题 114
第5章 Transact-SQL基础 116
5.1 了解Transact-SQL编程语言 116
5.1.1 Transact-SQL概述 116
5.1.2 Transact-SQL语句分类 117
5.2 Transact-SQL语法要素 118
5.2.1 常用编码 118
5.2.2 标识符 119
5.2.3 常量 119
5.2.4 变量 121
5.2.5 注释 123
5.3 Transact-SQL运算符 123
5.3.1 算术运算符 123
5.3.2 比较运算符 123
5.3.3 逻辑运算符 124
5.3.4 字符串连接运算符 126
5.3.5 位运算符 126
5.3.6 赋值运算符 126
5.3.7 运算符的优先级 126
5.4 Transact-SQL函数 127
5.4.1 数学函数 127
5.4.2 聚合函数 128
5.4.3 日期和时间函数 128
5.4.4 转换函数 130
5.4.5 字符串函数 131
5.4.6 自定义函数 132
5.5 Transact-SQL表达式 132
5.6 Transact-SQL控制流语句 133
5.6.1 IF…ELSE语句 133
5.6.2 BEGIN…END语句 134
5.6.3 WHILE语句 135
5.6.4 CASE语句 135
5.6.5 其他语句 137
5.7 小结 140
习题 140
第6章 数据检索 142
6.1 利用SELECT语句检索数据 142
6.1.1 利用SELECT…FROM语句指定列 144
6.1.2 利用WHERE子句指定行 145
6.1.3 利用INTO子句生成新表 146
6.2 数据过滤 147
6.2.1 空值查询 147
6.2.2 利用比较运算符查询 148
6.2.3 利用字符串运算符查询 149
6.2.4 利用逻辑运算符查询 150
6.2.5 检索一定范围内的值 150
6.2.6 利用列表值检索数据 151
6.3 设置结果集格式 152
6.3.1 改变列名 152
6.3.2 利用ORDER BY子句排序 152
6.3.3 消除重复行 154
6.3.4 利用TOP n输出前n行 155
6.4 GROUP BY子句和HAVING子句 155
6.4.1 GROUP BY子句的使用 155
6.4.2 GROUP BY子句和HAVING子句的联合使用 157
6.5 WITH ROLLUP子句和聚合函数的使用 158
6.5.1 利用GROUP BY子句与WITH ROLLUP进行统计 158
6.5.2 聚合函数的应用 158
6.6 小结 160
习题 161
第7章 Transact-SQL语句的高级应用 162
7.1 多表连接 162
7.1.1 连接概述 162
7.1.2 内连接 163
7.1.3 外连接 164
7.1.4 交叉连接 165
7.1.5 连接多个表 166
7.1.6 合并多个结果集 167
7.2 使用子查询 168
7.2.1 子查询介绍 168
7.2.2 利用子查询作表达式 168
7.2.3 利用子查询关联数据 170
7.2.4 利用子查询生成派生表 170
7.2.5 使用子查询修改表数据 171
7.2.6 EXISTS和NOT EXISTS子句 172
7.3 利用游标处理结果集 172
7.3.1 游标的概念 172
7.3.2 游标的运用 173
7.3.3 游标的嵌套 177
7.3.4 查看游标的信息 178
7.4 管理大对象类型数据 182
7.5 小结 185
习题 186
第8章 索引和视图 187
8.1 规划索引 187
8.1.1 索引的用途 187
8.1.2 索引的类型 187
8.1.3 设计索引的基本原则 188
8.2 创建索引 188
8.2.1 利用SQL Server Management Studio创建索引 189
8.2.2 利用CREATE INDEX命令创建索引 191
8.3 维护索引 194
8.3.1 在SQL Server Management Studio中修改索引 194
8.3.2 利用ALTER INDEX命令修改索引 195
8.3.3 索引碎片检测 196
8.3.4 索引重组 196
8.3.5 索引重建 197
8.3.6 索引分析 198
8.3.7 删除索引 199
8.4 统计信息及应用 200
8.4.1 统计信息的收集 200
8.4.2 统计信息的创建 201
8.4.3 查看统计信息 202
8.4.4 统计信息的更新 204
8.5 视图的定义 205
8.5.1 视图概念 205
8.5.2 创建视图 205
8.5.3 查看视图信息 211
8.6 视图的修改 213
8.6.1 在SQL Server Management Studio中修改视图 213
8.6.2 利用ALTER VIEW命令修改视图 214
8.6.3 视图重命名 215
8.6.4 删除视图 215
8.7 通过视图修改数据 216
8.8 小结 219
习题 220
第9章 存储过程与触发器 221
9.1 认识存储过程 221
9.1.1 存储过程的类型 222
9.1.2 存储过程的设计原则 222
9.1.3 常用系统存储过程的使用 223
9.2 创建和管理存储过程 223
9.2.1 创建存储过程 223
9.2.2 修改存储过程 226
9.2.3 执行存储过程 227
9.3 认识触发器 228
9.3.1 触发器的分类 228
9.3.2 触发器的工作原理 229
9.3.3 创建触发器前应注意的问题 230
9.4 创建和管理触发器 230
9.4.1 创建触发器 230
9.4.2 修改触发器 233
9.4.3 触发器的常见应用 234
9.4.4 查看触发器 235
9.4.5 删除触发器 236
9.4.6 禁用触发器 236
9.4.7 启用触发器 237
9.5 小结 237
习题 238
第10章 事务和锁 240
10.1 事务概述 240
10.1.1 事务的特点 240
10.1.2 事务的分类 241
10.2 管理事务 242
10.2.1 启动事务 242
10.2.2 保存事务 244
10.2.3 提交事务 245
10.2.4 回滚事务 245
10.2.5 自动提交事务 246
10.2.6 事务嵌套 246
10.3 管理并发数据 248
10.3.1 并发的影响 249
10.3.2 并发控制的类型 249
10.3.3 事务的隔离级别 250
10.4 管理锁 251
10.4.1 锁的类型 251
10.4.2 可以锁定的资源 252
10.4.3 锁的兼容性 252
10.4.4 死锁 253
10.4.5 显示锁定信息 254
10.5 小结 255
习题 256
第11章 SQL Server的安全管理 257
11.1 SQL Server的安全性机制 257
11.1.1 基本概念 258
11.1.2 权限层次结构 259
11.1.3 查询权限 259
11.2 管理服务器范围的安全性 261
11.2.1 SQL Server 2016的验证模式 261
11.2.2 服务器角色 263
11.2.3 管理登录名 264
11.2.4 管理凭据 268
11.3 管理数据库范围的安全性 270
11.3.1 数据库角色 270
11.3.2 管理数据库用户 277
11.3.3 特殊用户 279
11.4 管理密钥与证书 280
11.4.1 SQL Server 2016的密码系统架构 280
11.4.2 创建密钥 281
11.4.3 创建证书 282
11.4.4 加密实例 283
11.5 权限管理 284
11.5.1 语句权限 284
11.5.2 对象权限 286
11.5.3 解决权限冲突 289
11.6 小结 289
习题 290
第12章 备份和恢复 291
12.1 备份和还原概述 291
12.1.1 备份的时机 291
12.1.2 备份和恢复的类型 292
12.1.3 备份策略的选择 293
12.1.4 恢复模式的设置 293
12.2 备份数据库 295
12.2.1 创建备份设备 296
12.2.2 执行完整数据库备份 297
12.2.3 执行差异数据库备份 301
12.2.4 执行事务日志备份 301
12.2.5 执行文件或文件组的备份 304
12.3 还原数据库 306
12.3.1 从完整数据库备份还原 307
12.3.2 从差异数据库备份还原 310
12.3.3 从事务日志备份还原 310
12.4 还原受损的系统数据库 313
12.5 小结 314
习题 314
第13章 系统自动化任务管理 316
13.1 SQL Server代理 316
13.1.1 配置SQL Server代理 316
13.1.2 启动和停止SQL Server代理 319
13.1.3 SQL Server代理的安全性 321
13.2 作业 322
13.2.1 创建作业 322
13.2.2 管理作业 325
13.2.3 查看作业历史 327
13.3 警报 328
13.3.1 创建警报响应SQL Server错误 329
13.3.2 删除警报 330
13.4 操作员 331
13.4.1 创建操作员 331
13.4.2 为操作员分配警报 332
13.5 维护计划 333
13.6 小结 342
习题 342
第14章 复制与性能监视 344
14.1 复制概述 344
14.1.1 复制的发布模型 344
14.1.2 复制类型 345
14.1.3 SQL Server 2016引入的新功能 347
14.2 创建复制 347
14.2.1 创建发布 348
14.2.2 创建订阅 353
14.2.3 配置分发 359
14.3 管理复制 363
14.3.1 查看和修改发布属性 363
14.3.2 查看和修改项目属性 364
14.3.3 设置历史记录保持期 365
14.3.4 查看发布服务器信息及执行任务 365
14.4 系统性能监视器的使用 367
14.4.1 系统性能监视器的运行 367
14.4.2 SQL Server的性能对象 370
14.4.3 监视SQL Server的任务 370
14.4.4 利用SQL Server Profiler工具进行监视 371
14.5 小结 375
习题 375
第15章 SQL Server数据库应用系统开发 377
15.1 常用软件开发的一般过程 377
15.2 社区诊所就医管理系统的数据库设计 379
15.2.1 数据库的需求分析 380
15.2.2 设计数据库的概念结构 381
15.2.3 数据库的表设计 385
15.3 数据库应用系统的开发 388
15.3.1 软件开发环境的搭建 388
15.3.2 系统总体设计 388
15.3.3 系统的功能与实现 398
15.3.4 系统的运行与使用 401
15.4 小结 409
习题 409