项目1 设计数据库 1
1.1 数据库的基本概念 2
1.1.1 数据库 2
1.1.2 数据库管理系统 3
1.1.3 数据库系统 3
1.1.4 数据管理技术的发展 4
1.1.5 数据库系统的体系结构 4
1.2 数据模型 5
1.2.1 数据模型的概念 5
1.2.2 数据模型的组成 6
1.2.3 数据模型的类型 6
1.2.4 数据库的规范化 10
1.3 关系代数 11
1.3.1 传统的集合运算 11
1.3.2 专门的关系运算 12
1.4 数据库设计的方法和步骤 14
1.4.1 数据库设计的方法 15
1.4.2 数据库设计的步骤 15
1.5 小型案例实训 17
小结 18
习题 19
项目2 安装SQL Server 2012 23
2.1 了解SQLServer 2012 24
2.1.1 SOL Server 2012简介 24
2.1.2 SQL Server 2012的版本 25
2.1.3 SOL Server 2012的组件 25
2.1.4 SQL Server 2012管理工具 26
2.2 安装SQL Server 2012 29
2.2.1 硬件和软件要求 29
2.2.2 SOL Server的默认实例和命名实例 29
2.2.3 SQL Server安装中心 29
2.3 运行SQL Server 2012 30
2.4 配置SQL Server 2012 32
2.5 小型案例实训 34
小结 34
习题 35
项目3 创建数据库 37
3.1 SQL Server数据库 38
3.1.1 系统数据库 38
3.1.2 数据库文件和文件组 39
3.1.3 事务日志 40
3.2 创建数据库 40
3.2.1 创建单个数据文件和日志文件的数据库 40
3.2.2 创建多个数据文件和日志文件的数据库 41
3.2.3 创建有用户文件组的数据库 42
3.3 修改数据库 44
3.3.1 添加数据文件 44
3.3.2 添加带有数据文件的文件组 45
3.3.3 添加日志文件 46
3.3.4 增加文件大小 47
3.3.5 收缩文件 47
3.3.6 收缩数据库 48
3.3.7 删除文件 49
3.4 删除数据库 49
3.5 查看数据库信息 50
3.5.1 查看数据库的数据和日志空间信息 50
3.5.2 查看数据库的属性 50
3.6 分离和附加数据库 51
3.6.1 分离数据库 51
3.6.2 附加数据库 51
3.7 小型案例实训 52
小结 55
习题 55
项目4 创建表 57
4.1 表 58
4.1.1 表的概念 58
4.1.2 表的类型 58
4.2 创建表 59
4.2.1 创建表 59
4.2.2 创建带计算列的表 61
4.2.3 创建带标识列的表 62
4.3 修改表 63
4.3.1 重命名列 63
4.3.2 添加列 64
4.3.3 修改列 64
4.3.4 更改列顺序 64
4.3.5 删除列 64
4.4 删除表 65
4.5 数据完整性 65
4.5.1 数据完整性的概念 66
4.5.2 数据完整性的类型 66
4.5.3 主键约束 66
4.5.4 唯一约束 68
4.5.5 列默认值 70
4.5.6 CHECK约束 72
4.5.7 外键约束 74
4.6 查看表信息 77
4.6.1 查看表记录 77
4.6.2 查看表属性 77
4.6.3 查看表的依赖关系 78
4.7 小型案例实训 79
小结 85
习题 85
项目5 创建索引 89
5.1 索引 90
5.1.1 索引的概念 90
5.1.2 索引的类型 91
5.1.3 堆 91
5.2 创建索引 92
5.2.1 创建聚集索引 92
5.2.2 创建非聚集索引 93
5.2.3 创建唯一索引 94
5.2.4 创建带有包含列的索引 95
5.2.5 创建筛选索引 96
5.3 修改索引 97
5.3.1 修改索引列 97
5.3.2 禁用索引 98
5.3.3 重新生成索引 99
5.3.4 重新组织索引 99
5.3.5 索引填充因子 100
5.4 删除索引 101
5.5 设计和优化索引 102
5.5.1 索引设计任务 102
5.5.2 设计聚集索引 102
5.5.3 设计非聚集索引 103
5.5.4 设计唯一索引 103
5.5.5 设计带有包含列的索引 103
5.5.6 设计筛选索引 103
5.6.7 优化索引 103
5.6 小型案例实训 104
小结 106
习题 107
项目6 创建视图 109
6.1 视图 110
6.1.1 视图的概念 110
6.1.2 视图的类型 110
6.2 创建视图 111
6.2.1 创建标准视图 111
6.2.2 创建加密视图 112
6.2.3 创建带更新限制的视图 113
6.3 修改视图 113
6.4 删除视图 114
6.5 使用视图 114
6.6 查看视图 116
6.7 小型案例实训 117
小结 118
习题 119
项目7 Transact-SQL语言 121
7.1 Transact-SQL语言 122
7.2 标识符 122
7.3 数据库对象名称 123
7.4 数据类型 123
7.4.1 系统数据类型 123
7.4.2 用户定义数据类型 126
7.5 常量和变量 127
7.6 运算符 127
7.7 表达式 128
7.8 函数 129
7.9 注释 131
7.10 Transact-SQL程序要素 131
7.10.1 USE 132
7.10.2 GO 132
7.10.3 PRINT 133
7.10.4 RAISERROR()函数 133
7.10.5 BEGIN...END 133
7.10.6 GOTO 134
7.10.7 RETURN 134
7.10.8 IF...ELSE 134
7.10.9 WHILE 135
7.10.10 CONTINUE 135
7.10.11 BREAK 135
7.10.12 WAITFOR 136
7.10.13 TRY...CATCH 137
7.10.14 THROW 138
7.11 小型案例实训 138
小结 140
习题 141
项目8 查询记录 143
8.1 SELECT语句 144
8.2 SELECT子句 144
8.2.1 查询列 144
8.2.2 列标题和列计算 145
8.2.3 避免重复记录 146
8.2.4 限制返回行数 146
8.3 FROM子句 147
8.3.1 查询单个表 147
8.3.2 多表联接 148
8.3.3 派生表 152
8.4 WHERE子句 152
8.4.1 简单比较 153
8.4.2 模糊查询 154
8.4.3 比较运算符 154
8.4.4 满足任一条件 155
8.4.5 满足所有条件 155
8.4.6 值列表 156
8.4.7 值区间 156
8.4.8 值为空 157
8.5 GROUPBY子句 158
8.5.1 按列分组统计 158
8.5.2 按表达式结果分组统计 159
8.6 HAVING子句 159
8.7 ORDER BY子句 160
8.7.1 按指定列排序 160
8.7.2 按表达式结果排序 161
8.7.3 按特定条件列排序 162
8.8 INTO子句 162
8.9 子查询 163
8.9.1 子查询用作单个值 163
8.9.2 ALL、ANY和SOME 164
8.9.3 IN 166
8.9.4 EXISTS 167
8.10 集运算符 168
8.10.1 UNION 168
8.10.2 EXCEPT 169
8.10.3 INTERSECT 170
8.11 小型案例实训 170
小结 174
习题 174
项目9 插入、更新和删除记录 177
9.1 插入记录 178
9.1.1 插入单个记录 178
9.1.2 插入多个记录 178
9.1.3 插入列顺序任意的记录 179
9.1.4 插入列具有默认值的记录 179
9.1.5 插入含标识列的记录 180
9.1.6 插入来自其他表的记录 180
9.1.7 限制来自其他表的记录数量 181
9.1.8 向视图插入记录 181
9.2 更新记录 181
9.2.1 更新单个列 181
9.2.2 更新多个列 182
9.2.3 更新部分记录 182
9.2.4 更新限制数量的记录 182
9.2.5 更新列为计算结果 182
9.2.6 更新列为默认值 183
9.2.7 更新视图 183
9.2.8 根据其他表的记录来更新记录 183
9.3 删除记录 184
9.3.1 删除所有记录 184
9.3.2 删除部分记录 184
9.3.3 删除限制数量的记录 185
9.3.4 根据其他表的记录来删除记录 185
9.4 比较记录 185
9.5 小型案例实训 186
小结 189
习题 189
项目10 使用事务和锁 191
10.1 事务 192
10.1.1 事务的概念 192
10.1.2 事务的属性 192
10.1.3 事务的类型 193
10.1.4 启动事务 193
10.1.5 保存事务 193
10.1.6 结束事务 193
10.2 并发控制 195
10.2.1 并发的负面影响 195
10.2.2 并发控制的类型 195
10.2.3 数据库引擎中的隔离级别 196
10.2.4 自定义事务隔离级别 197
10.3 锁定 198
10.3.1 锁粒度和层次结构 198
10.3.2 锁模式 199
10.3.3 锁兼容性 200
10.3.4 死锁 200
10.4 小型案例实训 201
小结 203
习题 203
项目11 使用游标 205
11.1 游标 206
11.1.1 游标的概念 206
11.1.2 游标的类型 206
11.2 使用游标 207
11.2.1 使用简单游标的方法 207
11.2.2 使用嵌套游标 214
11.3 小型案例实训 215
小结 216
习题 217
项目12 创建存储过程 219
12.1 存储过程 220
12.1.1 存储过程的概念 220
12.1.2 存储过程的作用 220
12.1.3 存储过程的类型 221
12.2 创建存储过程 221
12.2.1 创建不带参数的存储过程 221
12.2.2 创建带输入参数的存储过程 222
12.2.3 创建带有默认值的存储过程 223
12.2.4 创建带有输出参数的存储过程 224
12.3 修改存储过程 225
12.4 删除存储过程 226
12.5 执行存储过程 226
12.5.1 执行不带参数的存储过程 227
12.5.2 执行带输入参数的存储过程 227
12.5.3 执行带有默认值的存储过程 228
12.5.4 执行带有输出参数的存储过程 229
12.5.5 使用存储过程返回代码值 229
12.6 查看存储过程 230
12.7 小型案例实训 231
小结 235
习题 235
项目13 创建用户定义函数 237
13.1 用户定义函数 238
13.1.1 用户定义函数的概念 238
13.1.2 用户定义函数的优点 238
13.1.3 用户定义函数的类型 238
13.2 创建用户定义函数 239
13.2.1 创建标量值函数 239
13.2.2 创建内联表值函数 240
13.2.3 创建多语句表值函数 241
13.3 修改用户定义函数 242
13.4 删除用户定义函数 243
13.5 执行用户定义函数 244
13.5.1 执行标量值函数 244
13.5.2 执行内联表值函数 245
13.5.3 执行多语句表值函数 246
13.6 查看用户定义函数 246
13.7 小型案例实训 247
小结 250
习题 251
项目14 创建触发器 253
14.1 登录触发器 254
14.2 DDL触发器 255
14.2.1 DDL触发器的概念 255
14.2.2 DDL触发器的类型 255
14.2.3 DDL触发器的作用域 256
14.2.4 创建DDL触发器 256
14.2.5 修改DDL触发器 257
14.3 DML触发器 259
14.3.1 DML触发器的概念 259
14.3.2 DML触发器的优点 259
14.3.3 DML触发器的类型 259
14.4 创建DML触发器 260
14.4.1 inserted表和deleted表 260
14.4.2 创建包含提醒消息的DML触发器 261
14.4.3 创建在表之间强制实现业务规则的DML触发器 262
14.5 修改DML触发器 264
14.5.1 修改DML触发器定义 264
14.5.2 指定第一个和最后一个DML触发器 265
14.5.3 禁用DML触发器 267
14.5.4 启用DML触发器 268
14.6 删除DML触发器 269
14.7 查看DML触发器 269
14.8 小型案例实训 270
小结 273
习题 273
项目15 备份和还原数据库 275
15.1 备份 276
15.1.1 备份的概念 276
15.1.2 备份的作用 276
15.1.3 备份的类型 277
15.1.4 备份策略 277
15.1.5 备份类型的选择 277
15.2 还原和恢复 278
15.2.1 还原的概念 278
15.2.2 恢复的概念 278
15.3 备份设备 279
15.3.1 备份设备的概念 279
15.3.2 备份磁盘的概念 279
15.3.3 介质集的概念 279
15.3.4 介质簇的概念 279
15.3.5 备份集的概念 279
15.3.6 创建备份设备 279
15.4 恢复模式 280
15.4.1 恢复模式的概念 280
15.4.2 恢复模式的类型 280
15.5 完整恢复模式下的完整数据库备份与还原 282
15.5.1 完整恢复模式下的完整数据库备份 282
15.5.2 完整恢复模式下的完整数据库还原 283
15.6 完整恢复模式下的差异数据库备份与还原 284
15.6.1 完整恢复模式下的差异数据库备份 284
15.6.2 完整恢复模式下的差异数据库还原 284
15.7 完整恢复模式下的事务日志备份与还原 285
15.7.1 完整恢复模式下的事务日志备份 285
15.7.2 完整恢复模式下的事务日志还原 286
15.7.3 完整恢复模式下的结尾日志备份 287
15.8 完整恢复模式下的文件和文件组备份与还原 288
15.8.1 完整恢复模式下的文件和文件组备份 288
15.8.2 完整恢复模式下的文件和文件组还原 288
15.9 简单恢复模式下的完整数据库备份与还原 289
15.9.1 简单恢复模式下的完整数据库备份 289
15.9.2 简单恢复模式下的完整数据库还原 290
15.9.3 简单恢复模式下的差异数据库备份 290
15.9.4 简单恢复模式下的差异数据库还原 291
15.10 小型案例实训 291
小结 292
习题 293
项目16 导入和导出数据库中的数据 295
16.1 使用SQL Server导入和导出向导 296
16.1.1 启动SQL Server导入和导出向导 296
16.1.2 SQLServer导入和导出向导界面 297
16.2 使用SSIS 300
16.2.1 SSIS介绍 300
16.2.2 SSIS工作方式 300
16.2.3 创建SSIS包 301
16.2.4 执行SSIS包 304
16.3 小型案例实训 305
小结 307
习题 307
项目17 管理数据库安全 309
17.1 数据库权限层次结构 310
17.2 身份验证模式 311
17.2.1 Windows身份验证模式 311
17.2.2 混合验证模式 311
17.3 创建登录名 312
17.3.1 创建Windows登录 312
17.3.2 创建SQL Server登录 313
17.3.3 密码策略 314
17.4 服务器级别角色 315
17.4.1 服务器级别角色的作用 315
17.4.2 固定服务器角色 316
17.4.3 创建服务器角色 316
17.5 数据库用户 317
17.5.1 数据库用户的作用 317
17.5.2 创建数据库用户 317
17.6 数据库级别角色 318
17.6.1 数据库级别角色的作用 318
17.6.2 固定数据库角色 318
17.6.3 创建数据库角色 319
17.7 权限 320
17.7.1 授予权限 320
17.7.2 撤销权限 322
17.7.3 拒绝权限 322
17.8 小型案例实训 323
小结 325
习题 326
项目18 学生管理系统案例 327
18.1 程序设计介绍 328
18.1.1 Microsoft Visual Studio 2010集成环境 328
18.1.2 C#语言 328
18.1.3 ASP.NET 329
18.2 小型案例实训 330
18.2.1 基于Windows的学生管理系统 330
18.2.2 基于Web的学生管理系统 335
小结 341
习题 342
附录 各项目习题参考答案 343
参考文献 365