第一部分 学生用书 1
引言 3
第一章 SQL SERVER概述 8
1.1 概述 8
1.2 什么是SQL SERVER 8
1.3 SQL SERVER体系结构 14
1.4 SQL SERVER安全策略 18
1.5 SQL SERVER数据库 21
1.6 使用SQL SERVER 27
1.7 实验1.1 SQL SERVER概述 29
1.8 复习 30
2.1 概述 31
2.2 SQL SERVER编程工具 31
第二章 TRANSACT-SQL概述 31
2.3 TRANSACT-SQL编程语言 33
2.4 TRANSACT-SQL的元素 33
2.5 其他语言元素 37
2.6 执行TRANSACT-SQL语句的方法 46
2.7 查询的处理 51
2.8 实验2.1 TRANSACT-SQL概述 54
2.9 复习 54
第三章 创建数据库 56
3.1 概述 56
3.2 数据库简介 56
3.3 数据库的处理 58
3.4 更改数据库 62
3.5 LIBRARY数据库 68
3.6 实验3.1 创建数据库 71
3.7 创建数据类型 72
3.8 创建表 75
3.9 实验3.2创建数据库对象 81
3.10 复习 81
第四章 实现数据完整性 83
4.1 概述 83
4.2 使用约束 85
4.3 实验4.1实现数据完整性 97
4.4 复习 97
第五章 计划和创建索引 99
5.1 概述 99
5.2 索引简介 99
5.3 索引体系结构 102
5.4 簇索引 102
5.5 非簇索引 104
5.6 创建索引 113
5.7 CREATE INDEX选项 118
5.8 实验5.1创建索引 120
5.9 维护索引 121
5.10 数据库一致性检查程序 123
5.11 性能考虑 130
5.12 建议的做法 130
5.13 实验5.2维护索引 131
5.14 复习 132
第六章 查询多重表 133
6.1 概述 133
6.2 合并多个表的数据 133
6.3 合并多个结果集 145
6.4 从结果集创建表 147
6.5 建议的做法 148
6.7 复习 149
6.6 实验6.1查询多个表 149
第七章 高级查询技术 151
7.1 概述 151
7.2 子查询简介 151
7.3 嵌套子查询 152
7.4 相关子查询 154
7.5 更改数据 158
7.6 建议的做法 162
7.7 实验7.1高级查询技术 162
7.8 复习 163
第八章 数据汇总 165
8.1 概述 165
8.2 使用聚集函数 165
8.3 GROUP BY基础 168
8.4 产生结果集中的聚集值 172
8.5 使用COMPUTE和COMPUTE BY子句 179
8.6 列出POPn值 182
8.7 建议的做法 184
8.8 实验8.1汇总数据 184
8.9 复习 185
第九章 管理事务和锁 187
9.1 概述 187
9.2 事务和锁简介 187
9.3 管理事务 188
9.4 SQL SERVER锁定 193
9.5 管理锁 196
9.6 建议的做法 202
9.7 实验9.1管理事务和锁 202
9.8 复习 203
10.2 什么是视图 204
10.1 概述 204
第十章 实现视图 204
10.3 视图的优点 206
10.4 定义视图 206
10.5 通过视图更改数据 215
10.6 性能考虑 215
10.7 建议的做法 217
10.8 实验10.1实现视图 218
10.9 复习 218
第十一章 实现存储过程 220
11.1 概述 220
11.2 存储过程简介 220
11.3 执行和修改存储过程 224
11.4 实验11.1创建存储过程 230
11.5 在存储过程中使用参数 231
11.7 处理错误信息 237
11.6 执行扩展存储过程 237
11.8 演示:处理错误信息 238
11.9 性能考虑 242
11.10 建议的做法 243
11.11 实验11.2创建有参数的存储过程 243
11.12 复习 244
第十二章 实现触发器 245
12.1 概述 245
12.2 触发器简介 245
12.3 定义触发器 248
12.4 触发器如何工作 252
12.5 触发器举例 259
12.6 性能考虑 261
12.7 建议的做法 262
12.9 复习 263
12.8 实验12.1创建触发器 263
第十三章 使用分布式数据 265
13.1 概述 265
13.2 建立分布式环境 265
13.3 查询链接服务器 271
13.4 执行链接服务器上的存储过程 272
13.5 更改分布式数据 273
13.6 管理数据分布 274
13.7 建议的做法 275
13.8 实验13.1使用分布式数据 275
13.9 复习 276
附录A LIBRARY数据库实例 277
附录B 数据库模式 282
附录C 执行基本查询 284
附录D 使用光标 325
附录E 参考书目 336
第二部分 实验 343
第一章 实验1.1SQL SERVER概述 343
1.1 目标 343
1.2 练习1 使用SQL SERVER在线手册 343
1.3 练习2 NORTHWIND数据库简介 344
第二章 实验2.1TRANSACT-SQL概述 345
2.1 目标 345
2.2 开始之前 345
2.3 练习1 写基本的SELECT语句 345
2.4 练习2 修改脚本文件 346
2.5 练习3 使用系统函数和全局变量 347
3.3 练习1 创建LIBRARY数据库 349
3.2 开始之前 349
第三章 实验3.1创建数据库 349
3.1 目标 349
3.4 练习2 管理LIBRARY日志文件的增长 350
3.5 练习3 设置清除事务日志的选项 351
第四章 实验3.2创建数据库对象 352
4.1 目标 352
4.2 开始之前 352
4.3 练习1 创建用户定义的数据类型 353
4.4 练习2 在LIBARY数据库中创建表 354
4.5 练习3 添加和删除列 355
4.6 练习4 产生SQL脚本 356
4.7 练习5 给LIBRARY数据库装入样本数据 356
5.1 目标 357
5.2 开始之前 357
第五章 实验4.1实现数据完整性 357
5.3 练习1 定义DEFAULT约束 358
5.4 练习2 定义CHECK约束 358
5.5 练习3 定义PRIMARY KEY约束 359
5.6 练习4 定义FOREIGN KEY约束 360
5.7 如果时间允许,创建默认值和规则 361
第六章 实验5.1创建索引 363
6.1 目标 363
6.2 开始之前 363
6.3 练习1 创建索引 363
第七章 实验5.2维护索引 366
7.1 目标 366
7.2 开始之前 366
7.3 练习1 使用FILLFACTOR和DBCC SHOWCONTIG选项 367
7.4 练习2 获得查询性能信息 370
8.2 开始之前 372
8.1 目标 372
第八章 实验6.1查询多个表 372
8.3 练习1 连接表 373
8.4 练习2 使用UNION操作符合并结果集 375
8.5 练习3 创建临时表 377
第九章 实验7.1高级查询 379
9.1 目标 379
9.2 开始之前 379
9.3 练习1 使用子查询 379
9.4 练习2 基于其他表中的数据修改表数据 382
第十章 实验8.1汇总数据 385
10.1 目标 385
10.2 开始之前 385
10.3 练习1 使用GROUP BY和HAVING子句 385
10.4 练习2 使用ROLLUP和CUBE操作符 388
10.5 练习3 使用COMPUTE和COMPUTE BY子句 391
第十一章 实验9.1管理事务和锁 394
11.1 目标 394
11.2 开始之前 394
11.3 练习1 创建和执行事务 395
11.4 练习2 撤销事务 395
11.5 练习3 查看锁定信息 396
11.6 练习4 设置锁定选项 397
第十二章 实验10.1实现视图 399
12.1 目标 399
12.2 开始之前 399
12.3 练习1 创建和测试视图 400
12.4 练习2 创建视图的视图 401
12.5 练习3 加密视图定义 402
12.6 练习4 通过视图修改数据 403
12.8 练习6 测试所有权链的效果 404
12.7 练习5 查找视图定义 404
12.9 如果时间允许,使用SQL SERVER ENTERPRISE MANAGER创建视图 406
第十三章 实验11.1创建存储过程 407
13.1 目标 407
13.2 开始之前 407
13.3 练习1 使用CREATE STORED PROCEDURE向导 407
13.4 练习2 写一个存储过程 408
13.5 练习3 查找存储过程信息 409
第十四章 实验11.2创建带参数的存储过程 410
14.1 目标 410
14.2 开始之前 410
14.3 练习1 从脚本创建存储过程 411
14.4 练习2 更改存储过程 412
14.5 练习3 自定义错误信息 412
14.7 如果时间允许,监视过程调整缓存 413
14.6 练习4 使用返回代码 413
第十五章 实验12.1创建触发器 415
15.1 目标 415
15.2 开始之前 415
15.3 练习1 创建触发器 415
15.4 练习2 创建一个触发器更新派生值 416
15.5 练习3 创建一个维护业务规则的触发器 418
15.6 练习4 为reservation表创建触发器 418
15.7 练习5 测试嵌套触发器 419
第十六章 实验13.1处理分布式数据 420
16.1 目标 420
16.2 开始之前 420
16.3 练习1 建立链接服务器 420
16.4 练习2 查询远程数据 422