第1章 SQL Server 2005概述 1
1.1 SQL Server 2005简介 1
1.2 SQL Server 2005服务器的后台服务 2
1.2.1 SQL Server 2
1.2.2 SQL Server Active Directory Helper 2
1.2.3 SQL Server Agent 2
1.2.4 SQL Server Analysis Services 3
1.2.5 SQL Server Browser 3
1.2.6 SQL Server FullText Search 3
1.2.7 SQL Server Integration Services 3
1.2.8 SQL Server Reporting Services 3
1.2.9 SQL Server VSS Writer 4
1.3 SQL Server客户端工具 4
1.3.1 SQL Server Management Studio 4
1.3.2 Notification Services命令提示 6
1.3.3 Reporting Services配置 6
1.3.4 SQL Server Configuration Manager 7
1.3.5 SQL Server错误和使用情况报告 9
1.3.6 SQL Server外围应用配置器 10
1.3.7 SQL Server Profiler 11
1.3.8 Visual Studio 2005 13
1.3.9 SQL Server Business Intelligence Development Studio 14
1.4 SQL Server Management Studio 14
1.4.1 使用对象资源管理器 15
1.4.2 使用查询分析器 19
1.4.3 已注册服务器窗口 20
1.4.4 解决方案资源管理器 21
1.4.5 属性窗口 21
1.5 数据库的启动和停止 22
1.5.1 使用服务管理器 22
1.5.2 使用SQL Server 2005配置管理器 23
1.5.3 使用SSMS 23
1.6 使用配置管理器配置SQL Server服务 24
1.6.1 更改服务使用的账户 24
1.6.2 配置服务的启动模式 25
1.6.3 SQL Server 2005可用的网络协议 25
1.7 配置远程SQL Server服务 26
1.8 配置SQL Server服务器 27
1.8.1 常规 28
1.8.2 内存 28
1.8.3 处理器 29
1.8.4 安全性 30
1.8.5 连接 31
1.8.6 数据库设置 32
1.8.7 高级 33
1.9 通过日志查看服务器的运行情况 35
1.9.1 Windows事件查看器查看日志 35
1.9.2 日志查看器查看日志 36
1.10 教务管理系统 37
1.10.1 教务管理系统的需求 37
1.10.2 数据表 38
1.10.3 表之间的关系 41
1.10.4 教务管理系统的运行结果 42
1.11 小结 43
1.12 习题 44
1.12.1 填空题 44
1.12.2 选择题 44
1.12.3 上机题 44
第2章 数据库的建立 45
2.1 数据库的定义 45
2.2 数据库类型概述 46
2.2.1 OLTP 46
2.2.2 OLAP 47
2.2.3 系统数据库 48
2.3 数据库存储信息 49
2.4 规范化 49
2.4.1 每一个实体应该有唯一的标识符 49
2.4.2 只存储与实体直接有关的信息 50
2.4.3 避免重复值或重复列 50
2.4.4 表应避免为空的列 50
2.5 创建示例数据库 50
2.5.1 在SSMS中创建数据库 50
2.5.2 在查询分析器中创建数据库 54
2.5.3 使用模板创建数据库 57
2.6 修改数据库 58
2.6.1 使用SSMS修改数据库 58
2.6.2 使用T-SQL修改数据库 59
2.7 删除数据库 62
2.7.1 使用SSMS删除数据库 62
2.7.2 使用T-SQL删除数据库 63
2.8 数据库的其他操作 63
2.8.1 分离数据库 64
2.8.2 附加数据库 66
2.8.3 脱机和联机数据库 68
2.8.4 收缩数据库 69
2.9 综合实例 72
2.10 小结 72
2.11 习题 73
2.11.1 填空题 73
2.11.2 选择题 73
2.11.3 上机题 73
第3章 表 75
3.1 什么是表 75
3.2 数据类型 76
3.2.1 SQL Server数据类型 76
3.2.2 用户自定义数据类型 83
3.3 在SSMS中创建表 84
3.4 列的属性 86
3.4.1 数据列 86
3.4.2 生成identity值 87
3.4.3 NULL值的使用 88
3.5 通过查询分析器创建表 88
3.6 管理模板 93
3.7 在查询分析器中修改表 94
3.8 定义其余的表 95
3.8.1 临时表 95
3.8.2 已分区表 95
3.9 设置主键 96
3.9.1 在SSMS中创建主键 96
3.9.2 使用查询分析器创建主键 96
3.10 表的其他约束 96
3.10.1 在创建时检查现有数据 96
3.10.2 强制外键约束 97
3.10.3 UNIQUE约束 98
3.10.4 设置数据表的约束 98
3.11 约束的操作 98
3.12 表关系 99
3.12.1 创建关系图 99
3.12.2 在关系图中删除数据表 101
3.12.3 建立和删除表的关系 101
3.13 综合实例 102
3.14 小结 105
3.15 习题 106
3.15.1 填空题 106
3.15.2 选择题 106
3.15.3 上机题 106
第4章 数据操作 109
4.1 插入数据 109
4.1.1 通过SSMS插入数据 109
4.1.2 通过T-SQL语句插入数据 111
4.2 更新数据 113
4.2.1 通过SSMS更新数据 113
4.2.2 通过T-SQL语句更新数据 114
4.3 删除数据 115
4.3.1 通过SSMS删除数据 116
4.3.2 通过T-SQL语句删除数据 116
4.4 SELECT语句 118
4.4.1 SELECT语句的语法 118
4.4.2 WITH common_table_expression 119
4.4.3 SELECT子句 119
4.4.4 INTO子句 121
4.4.5 FROM子句 121
4.4.6 WHERE子句 124
4.4.7 GROUP BY子句 126
4.4.8 HAVING子句 127
4.4.9 UNION子句 127
4.4.10 EXCEPT和INTERSECT 128
4.4.11 ORDER BY子句 129
4.4.12 COMPUTE子句 130
4.4.13 FOR子句 131
4.5 多表查询 134
4.5.1 等值连接 134
4.5.2 不等值连接 135
4.5.3 自然连接 135
4.5.4 左外连接 136
4.5.5 右外连接 136
4.5.6 全外连接 137
4.5.7 交叉连接 137
4.5.8 自连接 138
4.6 子查询 138
4.6.1 IN关键字 139
4.6.2 EXISTS关键字 139
4.6.3 在HAVING语句中使用子查询 140
4.6.4 在INSERT、DELETE和UPDATE中使用子查询 140
4.6.5 联合查询 141
4.7 综合实例 142
4.8 小结 145
4.9 习题 145
4.9.1 填空题 145
4.9.2 选择题 145
4.9.3 上机题 146
第5章 T-SQL 149
5.1 T-SQL的改进 149
5.2 常量与变量 150
5.2.1 关于SQL标识符 150
5.2.2 常量 151
5.2.3 全局变量 151
5.2.4 局部变量 152
5.3 T-SQL的批处理 153
5.3.1 一次执行多个T-SQL语句 153
5.3.2 使用GO语句来分隔多个批处理 154
5.4 T-SQL中的注释 154
5.4.1 --注释 154
5.4.2 /*…*/注释 155
5.5 运算符与表达式 155
5.5.1 普通运算符 155
5.5.2 APPLY运算符 157
5.6 流程控制语句 157
5.6.1 BEGIN…END语句 157
5.6.2 IF语句 158
5.6.3 WHILE语句 158
5.6.4 CASE语句 159
5.6.5 GOTO语句 160
5.6.6 WAITFOR语句 161
5.6.7 RETURN语句 162
5.6.8 TRY…CATCH语句 162
5.6.9 EXECUTE语句 163
5.7 系统内置函数 165
5.7.1 系统函数 165
5.7.2 日期和时间函数 166
5.7.3 字符串函数 166
5.7.4 元数据函数 167
5.7.5 数学函数 168
5.7.6 聚合函数 168
5.8 综合实例 169
5.9 小结 169
5.10 习题 169
5.10.1 填空题 169
5.10.2 选择题 170
5.10.3 上机题 170
第6章 视图 171
6.1 视图概述 171
6.1.1 什么是视图 171
6.1.2 视图类型 172
6.2 使用SSMS创建视图 173
6.3 使用CREATE VIEW命令创建视图 175
6.4 修改视图 175
6.4.1 通过SSMS修改视图 176
6.4.2 通过查询编辑器修改视图 177
6.5 删除视图 177
6.5.1 通过SSMS删除视图 177
6.5.2 使用T-SQL语句删除视图 179
6.6 加密视图 179
6.7 视图的其他功能 180
6.7.1 编辑视图中的记录的限制 180
6.7.2 在SSMS中编辑数据 180
6.7.3 使用T-SQL语句操作视图记录 181
6.7.4 视图实现约束 182
6.8 视图重命名 182
6.9 综合实例 183
6.10 小结 183
6.11 习题 183
6.11.1 填空题 183
6.11.2 选择题 184
6.11.3 上机题 184
第7章 索引 185
7.1 索引概述 185
7.1.1 索引简介 186
7.1.2 索引分类 186
7.2 设计索引 187
7.2.1 数据库设计准则 187
7.2.2 查询设计准则 187
7.2.3 列设计准则 187
7.3 创建索引 188
7.3.1 系统自动创建索引 188
7.3.2 在SSMS中创建索引 189
7.3.3 在查询编辑器中创建索引 192
7.3.4 使用模板创建索引 194
7.4 查看和修改索引 195
7.4.1 通过SSMS修改索引 196
7.4.2 使用存储过程查看索引 196
7.4.3 使用视图查看索引信息 197
7.4.4 通过ALTER INDEX命令修改索引 198
7.5 删除索引 200
7.5.1 使用SSMS删除索引 200
7.5.2 使用DROP INDEX命令删除索引 200
7.6 索引视图 201
7.7 重新生成索引和组织索引 202
7.7.1 在SSMS中重新生成索引 202
7.7.2 在SSMS中重新组织索引 202
7.7.3 使用REBUILD重新生成索引 203
7.7.4 使用REORGANIZE重新组织索引 204
7.8 禁用索引 204
7.8.1 使用SSMS禁用索引 204
7.8.2 使用T-SQL禁用索引 205
7.9 重命名索引 205
7.10 综合实例 205
7.11 小结 205
7.12 习题 205
7.12.1 填空题 205
7.12.2 选择题 206
7.12.3 上机题 206
第8章 实现数据完整性 207
8.1 数据完整性概述 207
8.2 使用约束实现数据完整性 208
8.3 使用规则 208
8.4 使用默认值 209
8.5 使用identity属性 210
8.6 用户自定义函数 211
8.6.1 用户自定义函数的优点 211
8.6.2 用户自定义函数的类型 211
8.6.3 创建标量值函数 212
8.6.4 创建多语句表值函数 213
8.6.5 创建内联表值函数 215
8.6.6 在SSMS中创建用户自定义函数 216
8.6.7 查看和修改用户自定义函数 217
8.6.8 删除用户自定义函数 217
8.7 综合实例 218
8.8 小结 219
8.9 习题 220
8.9.1 填空题 220
8.9.2 选择题 220
8.9.3 上机题 220
第9章 存储过程和触发器 221
9.1 存储过程概述 221
9.2 创建存储过程 222
9.2.1 使用SSMS创建存储过程 222
9.2.2 使用CREATE PROCEDURE命令创建存储过程 224
9.3 执行存储过程 225
9.3.1 使用EXEC 225
9.3.2 使用SSMS执行存储过程 227
9.4 修改存储过程 227
9.4.1 使用SSMS修改存储过程 228
9.4.2 使用ALTER PROCEDURE命令修改存储过程 228
9.5 删除存储过程 229
9.5.1 使用SSMS删除存储过程 229
9.5.2 使用T-SQL语句删除存储过程 229
9.6 存储过程上机实践 229
9.7 触发器概述 230
9.8 DML触发器 231
9.8.1 创建DML触发器的注意事项 231
9.8.2 设计触发器限制 231
9.8.3 CREATE TRIGGER语法 232
9.8.4 使用SSMS创建触发器 234
9.8.5 设置触发器的激活顺序 235
9.8.6 触发器嵌套 236
9.8.7 触发器的递归 238
9.8.8 查看和修改DML触发器 238
9.8.9 禁用和启用触发器 240
9.8.10 删除DML触发器 240
9.9 DDL触发器 241
9.9.1 创建DDL触发器 241
9.9.2 查看、修改和删除DDL触发器 243
9.10 触发器上机实践 244
9.11 小结 244
9.12 习题 244
9.12.1 填空题 244
9.12.2 选择题 245
9.12.3 上机题 246
第10章 游标、事务与锁 247
10.1 游标 247
10.1.1 游标概述 247
10.1.2 游标定义 248
10.1.3 游标操作 250
10.1.4 游标示例 252
10.2 事务概述 253
10.2.1 事务概述 253
10.2.2 事务分类 253
10.2.3 事务日志 253
10.3 事务操作 254
10.3.1 开始事务 254
10.3.2 提交事务 255
10.3.3 回滚事务 255
10.3.4 锁定数据 256
10.3.5 显式事务 256
10.3.6 隐式事务 256
10.3.7 嵌套事务 257
10.3.8 管理事务隔离 259
10.4 锁 259
10.5 综合实例 260
10.6 小结 261
10.7 习题 261
10.7.1 填空题 261
10.7.2 选择题 262
10.7.3 上机题 262
第11章 数据库的备份与还原 263
11.1 数据库备份与还原概述 263
11.1.1 数据库备份概述 263
11.1.2 数据库还原概述 264
11.2 数据库备份 265
11.2.1 通过SSMS备份数据库 265
11.2.2 通过T-SQL语句备份数据库 267
11.3 备份设置管理 271
11.3.1 创建备份设备 271
11.3.2 查看备份设备内容 272
11.3.3 通过备份设备来备份数据库 273
11.3.4 删除备份设备 273
11.4 还原数据库 273
11.4.1 还原数据库的方式 274
11.4.2 还原数据库前要注意的事项 274
11.4.3 使用SSMS还原数据库 274
11.4.4 还原文件和文件组备份 277
11.4.5 使用T-SQL还原数据库 278
11.5 综合实例 282
11.6 小结 283
11.7 习题 283
11.7.1 填空题 283
11.7.2 选择题 284
11.7.3 上机题 284
第12章 安全性 285
12.1 保护数据库系统的网络安全设计 285
12.1.1 授权远程访问 286
12.1.2 保护外部访问 286
12.2 SQL Server的身份验证 286
12.3 管理对SQL Server数据库的访问 287
12.4 对数据库访问进行授权 288
12.4.1 创建数据库用户 288
12.4.2 为数据库用户设置权限 288
12.4.3 管理孤立用户 290
12.5 授予数据库权限 290
12.5.1 数据库角色介绍 290
12.5.2 创建数据库角色 290
12.5.3 数据库角色授予用户 291
12.6 管理应用程序角色 292
12.6.1 创建应用程序角色 292
12.6.2 使用应用程序角色 293
12.6.3 删除应用程序角色 293
12.7 管理对架构的访问 293
12.8 管理对表和列的访问 296
12.8.1 更改对表的访问 296
12.8.2 提供对列的单独访问 298
12.9 综合实例 298
12.10 小结 299
12.11 习题 300
12.11.1 填空题 300
12.11.2 选择题 300
12.11.3 上机题 300
第13章 Reporting Services 301
13.1 Reporting Services体系架构 301
13.1.1 报表服务器 302
13.1.2 报表管理器 303
13.1.3 模型管理器 304
13.1.4 报表生成器 310
13.1.5 Reporting Services配置和管理工具 313
13.2 Reporting Services开发 318
13.3 综合实例 327
13.4 小结 333
13.5 习题 333
13.5.1 填空题 333
13.5.2 选择题 334
13.5.3 上机题 334