第1章 初识SQLServer2012 1
1.1 了解SQL Server 2012的优势 1
1.2 了解SQL Server 2012的新功能 3
1.3 了解SQLServer 2012系统的体系结构 5
1.4 如何选择SQL Server 2012的版本 6
1.5 安装SQL Server 2012 7
1.5.1 SQL Server 2012安装环境需求 7
1.5.2 在32位Windows7操作系统中安装SQL Server2012 7
1.5.3 SQL Server2012常用实用程序 19
1.6 SSMS基本操作 26
1.6.1 SSMS连接 26
1.6.2 注册服务器 27
1.6.3 SQL Server 2012服务器属性配置 28
1.7 经典习题 35
第2章 数据库和表的操作 36
2.1 数据库组成 36
2.1.1 SQL Server2012常用的逻辑对象 36
2.1.2 数据库文件和文件组 38
2.2 系统数据库 39
2.2.1 SQL Server包含的系统数据库 40
2.2.2 在对象资源管理器中隐藏系统对象 42
2.3 创建数据库 42
2.3.1 使用SQL Server Management Studio图形界面创建数据库 42
2.3.2 使用Transact-SQL语句创建数据库 45
2.4 管理数据库 47
2.4.1 修改数据库 47
2.4.2 查看数据库信息 49
2.4.3 重命名数据库 50
2.4.4 删除数据库 50
2.4.5 分离数据库和附加数据库 51
2.5 数据类型 52
2.5.1 系统数据类型 52
2.5.2 用户自定义的数据类型 55
2.6 创建数据表 57
2.6.1 使用SQL Server Management Studio创建表 57
2.6.2 使用Transact-SQL语句创建表 58
2.7 管理数据表 59
2.7.1 使用Transact-SQL语句增加、删除和修改字段 59
2.7.2 查看数据表 60
2.7.3 删除数据表 62
2.8 疑难解惑 62
2.9 经典习题 63
第3章 Transact-SQL语言基础 64
3.1 工作场景导入 64
3.2 Transact-SQL概述 64
3.2.1 Transact-SQL语法约定 65
3.2.2 多部分名称 65
3.2.3 如何给标识符起名 66
3.2.4 系统保留字 67
3.3 常量 69
3.3.1 字符串型常量 70
3.3.2 数字常量 70
3.3.3 日期时间型常量(DATETIME) 70
3.4 变量 70
3.4.1 全局变量 70
3.4.2 局部变量 71
3.5 运算符和表达式 71
3.5.1 运算符 71
3.5.2 表达式 74
3.6 Transact-SQL利器——通配符 76
3.7 Transact-SQL语言中的注释 76
3.8 数据定义语言(DDL) 77
3.9 数据操纵语言(DML) 77
3.10 数据控制语言(DCL) 78
3.11 其他基本语句 78
3.11.1 数据声明 79
3.11.2 数据赋值 79
3.11.3 数据输出 79
3.12 流程控制语句 80
3.12.1 BEGIN...END语句 80
3.12.2 IF-ELSE条件语句 80
3.12.3 Case语句 81
3.12.4 WHILE...CONTINUE...BREAK语句 82
3.12.5 GOTO语句 84
3.12.6 WAITFOR语句 84
3.12.7 RETURN语句 85
3.13 批处理语句 85
3.13.1 批处理的基本概念 85
3.13.2 每个批处理单独发送到服务器 86
3.13.3 何时使用批处理 87
3.13.4 使用批处理建立优先级 87
3.13.5 创建批处理后的执行 89
3.13.6 批处理中的错误 91
3.13.7 GO不是T-SQL命令 92
3.14 SQL Server 2012函数简介 92
3.14.1 字符串函数 92
3.14.2 数学函数 95
3.14.3 数据类型转换函数 96
3.14.4 日期和时间函数 97
3.14.5 系统函数 99
3.15 为学生选课表增加10万行测试数据 99
3.16 疑难解惑 102
3.17 经典习题 102
第4章 SQL语言查询 103
4.1 工作场景导入 103
4.2 关系代数 104
4.2.1 选择(Selection) 104
4.2.2 投影(Projection) 105
4.2.3 关于连接的介绍 106
4.3 查询工具的使用 107
4.4 简单查询 108
4.4.1 SELECT语句对列的查询 109
4.4.2 SELECT语句对行的选择 111
4.4.3 对查询结果排序 118
4.4.4 对查询结果统计 119
4.4.5 对查询结果生成新表 121
4.5 连接查询 122
4.5.1 交叉连接 123
4.5.2 内连接 124
4.5.3 外连接 127
4.6 嵌套查询 128
4.6.1 带有IN谓词的子查询 128
4.6.2 带有比较运算符的子查询 129
4.6.3 带有ANY、SOME或ALL关键字的子查询 130
4.6.4 带有EXISTS谓词的子查询 131
4.7 联合查询 134
4.7.1 UNION操作符 134
4.7.2 INTERSECT操作符 135
4.7.3 EXCEPT操作符 135
4.8 使用排序函数 136
4.8.1 ROW_NUMBER() 136
4.8.2 RANK() 137
4.8.3 DENSE_RANK() 138
4.8.4 NTILE() 139
4.9 动态查询 140
4.10 经典习题 142
第5章 数据的更新 143
5.1 工作场景导入 143
5.2 插入数据 143
5.2.1 插入单行数据 144
5.2.2 插入多行数据 145
5.2.3 大批量插入数据 146
5.3 修改数据 147
5.3.1 修改单行数据 147
5.3.2 修改多行数据 148
5.4 删除数据 149
5.4.1 使用DELETE语句删除数据 149
5.4.2 使用TRUNCATETABLE语句清空表 150
5.5 经典习题 150
第6章 规则、默认和完整性约束 151
6.1 工作场景导入 151
6.2 如何实现数据完整性 151
6.3 规则对象的基本操作 153
6.3.1 创建规则对象 153
6.3.2 绑定规则对象 154
6.3.3 验证规则对象 155
6.3.4 解除规则对象绑定 155
6.3.5 删除规则对象 155
6.4 默认值对象的基本操作 156
6.4.1 创建默认值对象 156
6.4.2 默认值对象绑定 156
6.4.3 解除默认值对象绑定 156
6.4.4 删除默认值对象 157
6.5 完整性约束 157
6.5.1 PRIMARY KEY约束 157
6.5.2 FOREIGN KEY(外键)约束 160
6.5.3 UNIQUE约束 163
6.5.4 CHECK约束 164
6.5.5 DEFAULT约束 165
6.5.6 NOT NULL约束 165
6.6 疑难解惑 166
6.7 经典习题 166
第7章 创建和使用索引 167
7.1 工作场景导入 167
7.2 索引的优缺点 167
7.3 索引的分类 168
7.4 索引的设计原则 170
7.5 创建索引 171
7.5.1 使用对象资源管理器创建索引 171
7.5.2 使用Transact-SQL语句创建索引 174
7.6 索引的维护和删除 175
7.6.1 显示索引信息 175
7.6.2 修改索引 177
7.6.3 删除索引 179
7.6.4 重新组织和重新生成索引 179
7.7 经典习题 184
第8章 事务、锁和游标 186
8.1 工作场景导入 186
8.2 事务管理 187
8.2.1 事务的原理 187
8.2.2 事务的概念 188
8.2.3 事务的特性 188
8.2.4 事务的工作原理 188
8.2.5 事务的执行模式 188
8.2.6 事务的应用案例 190
8.2.7 使用事务时的考虑 195
8.3 锁 196
8.3.1 事务的缺陷 196
8.3.2 锁的概念 197
8.3.3 隔离性的级别 198
8.3.4 锁的空间管理及粒度 199
8.3.5 锁的类别 200
8.3.6 如何在SQL Server中查看数据库中的锁 201
8.3.7 死锁及其防止 202
8.4 游标 203
8.4.1 游标(Cursor)概述 203
8.4.2 声明游标 204
8.4.3 打开游标 206
8.4.4 读取游标 207
8.4.5 关闭游标 208
8.4.6 删除游标 209
8.5 经典习题 209
第9章 存储过程和触发器 210
9.1 存储过程 210
9.1.1 存储过程的基本概念 210
9.1.2 存储过程的类型 211
9.1.3 用户存储过程的创建与执行 212
9.1.4 存储过程的查看、修改和删除 217
9.2 触发器 220
9.2.1 触发器概述 220
9.2.2 DML触发器的创建和应用 221
9.2.3 DDL触发器的创建和应用 224
9.2.4 查看、修改和删除触发器 225
9.3 经典习题 227
第10章 视图 228
10.1 工作场景导入 228
10.2 视图概述 228
10.2.1 视图的概念 229
10.2.2 视图的分类 229
10.2.3 视图的优点和作用 229
10.3 创建视图 230
10.3.1 使用视图设计器创建视图 231
10.3.2 使用T-SQL命令创建视图 232
10.4 修改视图 234
10.5 查看视图 235
10.5.1 使用SSMS图形化工具查看视图定义信息 235
10.5.2 使用系统存储过程查看视图定义信息 236
10.6 更新视图 239
10.6.1 通过视图向基本表中插入数据 239
10.6.2 通过视图修改基本表中的数据 240
10.6.3 通过视图删除基本表中的数据 241
10.7 删除视图 241
10.7.1 使用对象资源管理器删除视图 241
10.7.2 使用T-SQL命令删除视图 242
10.8 经典习题 242
第11章 SQL Server 2012的安全机制 243
11.1 SQL Server 2012安全性概述 243
11.1.1 SQL Server网络安全基础 244
11.1.2 SQL Server 2012安全性体系结构 246
11.1.3 SQL Server2012安全机制的总体策略 253
11.2 管理用户 255
11.2.1 管理对SQL Server实例的访问 255
11.2.2 管理对SQL Server数据库的访问 265
11.3 角色管理 268
11.3.1 服务器级角色 268
11.3.2 数据库级角色 272
11.3.3 自定义数据库角色 276
11.3.4 应用程序角色 277
11.4 管理架构 280
11.4.1 认识架构 280
11.4.2 使用默认架构 281
11.5 权限管理 282
11.5.1 授予权限 282
11.5.2 撤销权限 283
11.5.3 拒绝权限 284
11.6 管理对表和列的访问 285
11.7 管理对可编程对象的访问 287
11.8 疑难解惑 294
11.9 经典习题 294
第12章 数据库的备份与恢复 295
12.1 备份与恢复 295
12.1.1 备份类型 296
12.1.2 恢复模式 296
12.1.3 设置恢复模式 297
12.2 备份设备 298
12.2.1 创建备份设备 298
12.2.2 删除备份设备 299
12.3 备份数据库 300
12.3.1 完整备份 300
12.3.2 差异备份 302
12.3.3 事务日志备份 303
12.4 在SQL Server Management Studio中还原数据库 303
12.5 用T-SQL语言还原数据库 306
12.5.1 完整备份还原 306
12.5.2 差异备份还原 306
12.5.3 事务日志还原 306
12.6 建立自动备份的维护计划 307
12.7 疑难解惑 314
12.8 经典习题 314
第13章 分区管理及系统数据库的备份和还原 315
13.1 工作场景导入 315
13.2 创建分区 315
13.2.1 SQL Server数据库表分区 316
13.2.2 分区技术的分类和优点 316
13.2.3 创建分区函数 317
13.2.4 创建分区方案 320
13.2.5 创建分区表 321
13.2.6 管理分区 322
13.2.7 使用向导创建分区表 323
13.3 系统数据库的备份 326
13.3.1 查看或更改数据库的恢复模式 327
13.3.2 系统数据库的备份 331
13.3.3 备份和还原model数据库 333
13.4 还原master数据库 334
13.4.1 从当前数据库备份还原master 334
13.4.2 完全重新生成master 335
13.4.3 数据库选项 339
13.4.4 使用master数据库的限制 340
13.4.5 使用master数据库的建议 341
13.5 经典习题 341
13.6 实验 341
参考文献 349