第一部分 管理维护篇第1章 SQL Server概述 3
1.1 数据库的基本概念 3
1.1.1 数据库 3
1.1.2 数据库管理系统 5
1.1.3 数据库系统 5
1.2 认识SQL Server 6
1.2.1 SQL Server简介 6
1.2.2 SQL Server的功能 11
1.2.3 SQL Server的系统限制 13
1.3 SQL Server的工具与实用程序 13
1.3.1 Query Analyzer查询分析器 13
1.3.2 Enterprise Manager企业管理器 16
1.3.3 SQL Server联机帮助 17
本章小结 17
习题一 18
第2章 数据库的日常管理 19
2.1 SQL Server数据库文件与文件组 19
2.1.1 SQL Server数据库文件 19
2.1.2 数据库文件注意事项 19
2.1.3 文件组 20
2.2 数据库选项及设置 20
2.2.1 数据库选项含义 20
2.2.2 设置数据库选项 21
2.3 使用BCP和DTS 22
2.3.1 海量拷贝工具BCP 22
2.3.2 数据转换服务DTS 23
2.4 使用DBCC压缩数据库 26
2.5 优化数据库的查询性能 26
2.5.1 DBCC SHOWCONFIG查看存储碎片 29
2.5.2 SHOWPLAN监测数据库查询 29
2.5.3 Profiler事件探查器 29
2.5.4 UPDATE STATISTICS产生索引键值分布统计 29
2.5.5 设置最大化吞吐量 30
2.6 SQL Server的系统数据库 30
2.6.1 master系统数据库 31
2.6.2 model系统数据库 31
2.6.3 msdb系统数据库 31
2.6.4 tempdb系统数据库 31
本章小结 32
习题二 32
第二部分 SQL基础篇 35
第3章 用E-R图设计关系数据库 35
3.1 关系数据库 35
3.2 实体关系模型 36
3.2.1 实体、属性及关系 36
3.2.2 E-R模型 36
3.2.3 关系模型 38
3.2.4 表和属性的命名规则 39
3.3 关键字 39
3.3.1 五种关键字 39
3.3.2 数据完整性 41
3.4 建模工具PowerDesigner 41
本章小结 48
习题三 48
第4章 规范化数据及范式 49
4.1 规范化与非规范化数据 49
4.2 范式 50
4.2.1 第一范式1NF 50
4.2.2 第二范式2NF 50
4.2.3 第三范式3NF 50
本章小结 54
习题四 54
第5章 创建数据库 55
5.1 创建数据库 55
5.2 查看并修改数据库 60
5.2.1 向数据库中添加文件 62
5.2.2 扩展数据库 66
5.2.3 查看数据库信息 66
5.2.4 设置数据库属性 67
5.3 重命名数据库 69
5.4 删除数据库 70
本章小结 71
习题五 71
第6章 创建并管理表 72
6.1 数据类型 72
6.1.1 系统数据类型 72
6.1.2 创建用户自定义数据类型 74
6.1.3 删除用户自定义数据类型 75
6.2 表 76
6.2.1 创建表 76
6.2.2 管理表 80
本章小结 81
习题六 81
第7章 实施数据完整性 82
7.1 数据完整性 82
7.1.1 强制数据完整性 83
7.1.2 使用IDENTITY属性强制实施数据完整性 83
7.1.3 使用uniqueidentifier和NEWID生成唯一值 85
7.2 约束 85
7.3 规则和缺省 91
7.3.1 创建规则和缺省 91
7.3.2 绑定规则和缺省 92
7.3.3 重命名规则和缺省 94
7.3.4 解除规则和缺省的绑定 94
7.3.5 删除规则和缺省 95
本章小结 95
习题七 96
第8章 SQL查询 97
8.1 查询语句 97
8.2 SQL函数 99
8.2.1 字符串函数 99
8.2.2 日期函数及日期转换 101
8.2.3 系统函数 102
8.2.4 聚合函数 102
8.2.5 转型函数 103
8.2.6 数学函数 104
8.2.7 文本和图像函数 105
8.3 条件查询 105
8.3.1 基于条件查询的基本语法 105
8.3.2 单条件查询 106
8.3.3 多条件查询 107
8.4 限制查询结果集 108
8.4.1 DISTINCT去除重复结果 108
8.4.2 TOP返回指定记录行 109
8.4.3 PERCENT按比例显示记录行 110
8.4.4 使用通配符 110
8.5 对结果集进行分组 110
8.5.1 ORDER BY子句 110
8.5.2 GROUP BY子句 111
8.5.3 CUBE操作符 113
8.5.4 ROLLUP操作符 114
8.5.5 COMPUTE和COMPUTE BY子句 114
8.6 表连接 116
8.6.1 交叉连接 117
8.6.2 自然连接 117
8.6.3 等值连接 118
8.6.4 自连接 118
8.6.5 外连接 119
8.7 子查询 122
8.7.1 使用IN的子查询 123
8.7.2 使用EXISTS的子查询 123
8.7.3 子查询的限制 124
8.7.4 嵌套子查询 124
8.7.5 相关子查询 125
8.7.6 用修饰过的比较操作符查询 125
8.7.7 UNION操作符 125
8.8 分布式查询 127
8.8.1 即席查询 127
8.8.2 链接服务器查询 129
本章小结 133
习题八 134
第9章 维护数据库的数据 137
9.1 存储数据 137
9.1.1 向表中插入数据 138
9.1.2 将现有数据存入新表 139
9.1.3 现有数据的拷贝 139
9.2 修改数据 140
9.3 删除数据 141
9.3.1 删除行 141
9.3.2 清空表中数据 142
9.3.3 删除带数据的表 142
本章小结 143
习题九 143
第三部分 Transact-SQL高级篇第10章 索引与视图 147
10.1 实现索引 147
10.1.1 聚集索引和非聚集索引 148
10.1.2 索引的特性 150
10.1.3 创建索引 150
10.1.4 索引统计 152
10.1.5 管理SQL Server索引 153
10.1.6 监视索引的性能和使用 154
10.2 实现视图 154
10.2.1 视图定义 155
10.2.2 视图的优缺点 155
10.2.3 创建视图 157
10.2.4 修改、删除及重命名视图 160
10.2.5 用视图修改数据 161
本章小结 162
习题十 163
第11章 Transact-SQL的编程 165
11.1 批 165
11.1.1 批和脚本 165
11.1.2 局部变量和全局变量 166
11.1.3 打印输出语句 167
11.1.4 Transact-SQL代码的注释项 168
11.2 流程控制语句 168
11.2.1 IF…ELSE语句 168
11.2.2 BEGIN…END块 169
11.2.3 CASE结构 170
11.2.4 WHILE结构 172
本章小结 174
习题十一 174
第12章 游标 175
12.1 游标 175
12.1.1 游标的优点 176
12.1.2 声明游标 177
12.1.3 打开游标 178
12.1.4 从游标提取数据 178
12.1.5 关闭和释放游标 180
12.2 游标的应用 180
12.2.1 服务器游标和客户游标 182
12.2.2 服务器游标的优点 183
12.2.3 游标的限制 184
12.2.4 游标行为 184
本章小结 185
习题十二 185
第13章 存储过程 186
13.1 存储过程 186
13.1.1 存储过程定义 186
13.1.2 存储过程的优缺点 187
13.1.3 存储过程的类型 188
13.1.4 参数类型 189
13.2 创建存储过程 189
13.2.1 创建存储过程的语法 190
13.2.2 创建存储过程的准则 191
13.3 执行存储过程 191
13.3.1 自动执行存储过程 193
13.3.2 带变量和字符串的EXECUTE语句 193
13.3.3 RAISERROR语句 194
13.3.4 RETURN语句 194
13.3.5 执行存储过程的准则 195
13.3.6 修改存储过程 202
13.3.7 嵌套的存储过程 204
13.3.8 重新编译存储过程 207
13.4 删除存储过程 208
本章小结 208
习题十三 209
第14章 事务 210
14.1 事务操作 210
14.1.1 事务的定义和属性 210
14.1.2 事务并发及并发产生的问题 211
14.1.3 事务操作指南 212
14.1.4 事务处理的类型 212
14.1.5 事务的隔离级别 213
14.1.6 设计长度适宜的事务 216
14.2 事务的编程 216
14.2.1 创建事务 216
14.2.2 提交事务 216
14.2.3 回滚事务 217
14.2.4 保存事务 219
14.2.5 在存储过程中创建事务 220
14.2.6 嵌套事务 221
14.3 锁和死锁 221
14.3.1 锁 222
14.3.2 SQL Server锁模式 223
14.3.3 死锁及死锁的处理 224
14.3.4 使用@@TRANCOUNT处理错误 225
14.4 分布式事务 226
14.4.1 准备阶段 226
14.4.2 提交阶段 227
14.4.3 分布式事务协调者DTC 227
本章小结 227
习题十四 228
第15章 触发器 230
15.1 触发器 230
15.1.1 触发器定义 230
15.1.2 触发器特点 231
15.2 创建触发器 232
15.2.1 创建触发器的语法 232
15.2.2 创建触发器的准则 239
15.3 触发器类型 240
15.3.1 魔术表 240
15.3.2 INSERT触发器 241
15.3.3 DELETE触发器 241
15.3.4 UPDATE触发器 242
15.4 查看、修改和删除触发器 242
15.5 嵌套触发器 244
15.6 递归触发器 245
15.7 多重触发器 248
15.8 触发器实施数据完整性 248
本章小结 249
习题十五 249
附录 250
附录1 经验总结 250
附录2 习题答案 255