第1章 认识SQL Server 2008 1
1.1关系数据库 1
1.1.1什么是数据库 1
1.1.2什么是关系数据库 3
1.1.3关系数据库的有关术语 4
1.2关系数据库与SQL Server 2008 5
1.2.1SQL Server 2008简介 6
1.2.2SQL Server 2008的新特性 7
1.2.3SQL Server 2008的体系结构 8
1.3安装SQL Server 2008 10
1.4实验指导——注册SQL Server服务器 13
1.5升级到SQL Server 2008 15
1.5.1升级前的准备工作 15
1.5.2使用SQL Server 2008升级顾问 16
1.6实验指导——卸载SQL Server 2008 17
1.7习题 20
第2章 SQL Server 2008管理工具集 23
2.1SQL Server Management Studio 23
2.1.1使用SQL Server Management Studio 23
2.1.2使用对象资源管理器 25
2.1.3创建数据库 28
2.1.4查看数据库 28
2.1.5编写和执行查询语句 29
2.1.6查询设计器 30
2.2Business Intelligence Development Studio 32
2.3SQL Server配置管理器 34
2.3.1管理服务 34
2.3.2管理服务器和客户端网络协议 35
2.3.3使用命名管道配置服务器别名 37
2.4实验指导——隐藏SQL Server数据库引擎实例 38
2.5实验指导——配置SQL Server 2008的TCP/IP端口 39
2.6SQL Server Profiler 40
2.7数据库引擎优化顾问 42
2.8sqlcmd 43
2.8.1使用sqlcmd连接到数据库 43
2.8.2执行查询语句 44
2.8.3使用输入和输出文件 44
2.9实验指导——读取数据库数据到外部txt文件 45
2.10习题 46
第3章 SQL Server 2008的基本管理 48
3.1SQL Server 2008数据库 48
3.1.1什么是数据库 48
3.1.2SQL Server 2008系统数据库 49
3.1.3文件和文件组 50
3.1.4数据库状态和文件状态 51
3.2创建数据库 52
3.3实验指导——创建学生管理系统数据库stusystem 54
3.4创建表 55
3.4.1什么是表 55
3.4.2通过向导创建表 56
3.4.3通过命令创建表 56
3.5指定列数据类型 58
3.5.1数字数据类型 58
3.5.2Unicode字符串 60
3.5.3二进制数据类型 60
3.5.4日期和时间 60
3.5.5字符串 61
3.5.6其他数据类型 62
3.5.7创建用户定义的数据类型 63
3.6数据完整性 64
3.6.1数据完整性概述 65
3.6.2PRIMARY KEY约束 65
3.6.3IDENTITY属性 67
3.6.4UNIQUE约束 68
3.6.5NULL与NOT NULL约束 68
3.6.6DEFAULT约束 69
3.6.7CHECK约束 69
3.6.8FOREIGN KEY约束 70
3.6.9指定规则 72
3.6.10指定默认值 73
3.7实验指导——创建表的主键 74
3.8实验指导——定义学生管理系统表关系图 75
3.9维护表 76
3.9.1修改表名称 76
3.9.2修改表属性 77
3.9.3添加或删除表列 77
3.9.4删除表 78
3.10设计表的规范化 79
3.10.1第一范式 79
3.10.2第二范式 79
3.10.3第三范式 80
3.11习题 80
第4章 查询和管理表数据 83
4.1标准查询 83
4.1.1SELECT语句的语法格式 83
4.1.2获取若干列 84
4.1.3获取所有的列 85
4.1.4使用DISTINCT关键字 86
4.1.5使用TOP关键字 86
4.2使用WHERE子句 87
4.2.1使用比较运算符 87
4.2.2使用逻辑运算符 88
4.2.3使用范围运算符 88
4.2.4使用IN条件 89
4.2.5使用LIKE条件 90
4.2.6使用IS NULL条件 91
4.3实验指导——在WHERE子句中使用逻辑运算符 91
4.4规范化结果集 92
4.4.1排序结果集 92
4.4.2分组结果集 93
4.4.3统计结果集 94
4.5插入数据 95
4.5.1使用INSERT语句插入数据 95
4.5.2使用INSERT...SELECT语句插入数据 96
4.5.3使用SELECT...INTO语句创建表 98
4.6实验指导——使用INSERT语句插入多行数据 98
4.7更新数据 99
4.7.1根据表中的数据更新行 99
4.7.2根据其他表更新行 100
4.7.3使用TOP表达式更新行 101
4.8实验指导——更新多列 102
4.9删除数据 102
4.9.1使用DELETE语句删除数据 102
4.9.2使用TRUNCATE TABLE语句 103
4.9.3删除基于其他表中的行 104
4.10习题 105
第5章 查询复杂数据 108
5.1多表连接 108
5.1.1基本连接操作 108
5.1.2使用别名 109
5.1.3多表连接查询 110
5.1.4含有JOIN关键字的连接查询 110
5.2实验指导——查询Java班所教的科目 111
5.3内连接 111
5.3.1等值连接查询 112
5.3.2非等值连接查询 113
5.3.3自然连接查询 114
5.4外连接 114
5.4.1左外连接查询 114
5.4.2右外连接查询 115
5.4.3完全外连接查询 116
5.5交叉连接 116
5.5.1不使用WHERE子句的交叉连接查询 117
5.5.2使用WHERE子句的交叉连接查询 117
5.6自连接 118
5.7联合查询 119
5.8实验指导——按层次查看所有员工的信息 120
5.9子查询 121
5.9.1使用IN关键字 121
5.9.2使用EXISTS关键字 122
5.9.3使用比较运算符 123
5.9.4返回单值的子查询 125
5.9.5使用嵌套子查询 125
5.10实验指导——查询比Java班学生年龄都小的学生信息 126
5.11习题 127
第6章 管理数据库对象 133
6.1架构 133
6.1.1使用架构 133
6.1.2创建架构 134
6.1.3修改架构 137
6.1.4移动对象到新的架构 139
6.1.5删除架构 141
6.2实验指导——创建图书明细架构 142
6.3视图 143
6.3.1创建视图 143
6.3.2管理视图 146
6.3.3通过视图操作数据 148
6.4实验指导——创建药品详情视图 151
6.5索引 152
6.5.1选择索引类型 152
6.5.2创建索引 153
6.5.3查看索引属性 156
6.5.4管理索引 157
6.6实验指导——对药品信息建立聚集索引 158
6.7习题 159
第7章 管理数据库和数据库文件 162
7.1查看数据库状态 162
7.1.1通过目录视图查看数据库状态 162
7.1.2通过函数查看数据库状态 163
7.1.3通过存储过程查看数据库状态 163
7.2修改数据库 164
7.2.1修改数据库名称 164
7.2.2扩大数据库 165
7.2.3收缩数据库 166
7.2.4收缩数据库文件 167
7.2.5移动数据库文件 169
7.3实验指导——增加辅助数据库文件 170
7.4删除数据库 171
7.4.1使用向导删除数据库 171
7.4.2使用DROP DATABASE命令删除数据库 172
7.5分离与附加数据库 172
7.5.1分离数据库 173
7.5.2附加数据库 174
7.6实验指导——附加stusystem数据库 175
7.7数据库快照 176
7.7.1工作原理 176
7.7.2创建数据库快照 176
7.7.3删除数据库快照 178
7.8实验指导——将数据库恢复到数据库快照 178
7.9习题 178
第8章 Transact-SQL编程 181
8.1Transact-SQL语言基础 181
8.1.1什么是Transact-SQL 181
8.1.2Transact-SQL语法规范 182
8.1.3常量 183
8.1.4变量 183
8.1.5程序注释 186
8.2运算符 187
8.2.1算术运算符 187
8.2.2比较运算符 188
8.2.3赋值运算符 188
8.2.4位运算符 189
8.2.5逻辑运算符 190
8.2.6字符串连接运算符 190
8.2.7一元运算符 191
8.2.8运算符优先级 191
8.3控制语句 192
8.3.1BEGIN...END语句块 192
8.3.2IF...ELSE条件语句 192
8.3.3CASE分支语句 193
8.3.4WHILE循环语句 195
8.3.5TRY...CATCH错误处理语句 196
8.3.6其他语句 197
8.4实验指导——查询学生的科目成绩并划分级别 198
8.5函数 199
8.5.1聚合函数 199
8.5.2数学函数 201
8.5.3字符串函数 202
8.5.4数据类型转换函数 205
8.5.5日期时间函数 206
8.5.6用户自定义函数 206
8.6高级操作 210
8.6.1事务 210
8.6.2锁 212
8.6.3游标 213
8.7实验指导——使用自定义函数按姓名获取学生信息 216
8.8习题 217
第9章 存储过程 220
9.1使用存储过程 220
9.1.1存储过程的类型 220
9.1.2创建存储过程 222
9.1.3带参数的存储过程 224
9.1.4执行存储过程 225
9.2实验指导——使用SQL Server 2008的系统存储过程 227
9.3实验指导——使用存储过程按学号查询学生信息 228
9.4管理存储过程 229
9.4.1修改存储过程 229
9.4.2删除存储过程 230
9.4.3查看存储过程信息 230
9.5处理错误信息 232
9.5.1RETURN语句 232
9.5.2系统存储过程sp_addmessage 233
9.5.3RAISERROR函数 234
9.5.4系统全局变量@@ERROR 235
9.6优化存储过程 237
9.6.1SQL语句优化 237
9.6.2使用EXECUTE...WITHRECOMPILE语句 238
9.7实验指导——修改存储过程并处理错误信息 239
9.8习题 240
第10章 触发器 243
10.1了解触发器 243
10.1.1触发器概述 243
10.1.2触发器的类型 244
10.2创建触发器 246
10.2.1创建DML触发器 246
10.2.2创建DDL触发器 249
10.2.3嵌套触发器 250
10.2.4递归触发器 251
10.3实验指导——使用触发器删除班级 252
10.4管理触发器 254
10.4.1修改触发器 254
10.4.2禁用与启用触发器 254
10.4.3删除触发器 255
10.5习题 256
第11章 维护数据库安全 258
11.1SQL Server 2008安全机制 258
11.1.1客户机安全机制 259
11.1.2网络传输的安全机制 259
11.1.3实例级别安全机制 260
11.1.4数据库级别安全机制 260
11.1.5对象级别安全机制 261
11.2创建账户与数据库用户 261
11.2.1创建Windows账户登录 261
11.2.2创建SQL Server账户登录 264
11.2.3创建数据库用户 265
11.3删除用户与登录 267
11.3.1在图形化界面中删除用户与登录 267
11.3.2通过命令行删除用户与登录 268
11.3.3guest用户 269
11.4角色 269
11.4.1固定服务器角色 269
11.4.2固定数据库角色 272
11.4.3应用程序角色 274
11.4.4用户自定义角色 276
11.5权限 277
11.5.1对象权限 278
11.5.2语句权限 280
11.6实验指导——创建管理学生信息及成绩的管理员 282
11.7习题 283
第12章 备份与恢复数据库 285
12.1备份概述 285
12.1.1了解备份 285
12.1.2数据备份类型 286
12.1.3备份设备 287
12.1.4创建备份设备 288
12.2数据备份 289
12.2.1执行完整数据库备份 289
12.2.2执行差异备份 292
12.2.3执行事务日志备份 295
12.2.4执行文件或文件组备份 297
12.2.5备份策略 300
12.3实验指导——创建完整、差异兼事务日志备份stusystem数据库 301
12.4恢复模式 304
12.4.1完整恢复模式 304
12.4.2大容量日志恢复模式 304
12.4.3简单恢复模式 305
12.5恢复数据库 305
12.5.1标准恢复 305
12.5.2时间点恢复 307
12.5.3RESTORE语句 307
12.6实验指导——按时间点恢复stusystem数据库 309
12.7习题 312
第13章 系统自动化任务管理 315
13.1SQL Server代理 315
13.1.1SQL Server代理简介 315
13.1.2启动和停止SQL Server代理 316
13.1.3SQL Server代理的安全性 318
13.2数据库邮件 318
13.2.1配置数据库邮件 318
13.2.2发送测试电子邮件 321
13.2.3管理邮件配置文件和邮件账户 321
13.3操作员 322
13.3.1创建操作员 322
13.3.2禁用与删除操作员 325
13.4作业 326
13.4.1作业概述 326
13.4.2创建作业 327
13.4.3查看和修改作业 330
13.4.4查看作业历史日志 330
13.5实验指导——创建定时备份stusystem数据库作业 332
13.6警报 334
13.6.1创建警报 334
13.6.2禁用和删除警报 335
13.7实验指导——在作业上创建性能条件警报 336
13.8维护计划 338
13.8.1数据库维护任务 338
13.8.2使用向导创建维护计划 339
13.8.3手工创建维护计划 341
13.9习题 342
第14章 SQL Server 2008 XML开发 345
14.1使用XML数据类型 345
14.1.1XML数据类型简介 345
14.1.2XML数据类型方法 346
14.2实验指导——XML数据类型综合应用 350
14.3查询XML数据 351
14.3.1RAW模式 351
14.3.2AUTO模式 351
14.3.3PATH模式 352
14.3.4EXPLICIT模式 354
14.4实验指导——使用PATH模式 355
14.5其他XML技术 356
14.5.1XQuery支持 356
14.5.2XML索引 358
14.5.3OPENXML函数 361
14.6习题 363
第15章 SQL Server 2008高级开发 366
15.1使用CLR开发数据库对象 366
15.1.1CLR存储过程 366
15.1.2CLR触发器 370
15.2使用SMO操作SQL Server 2008 374
15.2.1创建SMO项目 374
15.2.2连接SQL Server 376
15.2.3创建数据库 378
15.2.4创建和删除表 378
15.2.5创建和执行存储过程 380
15.2.6创建触发器 381
15.3实验指导——使用存储过程添加学生信息 382
15.4使用报表服务 384
15.4.1报表组件和工具 385
15.4.2创建报表 386
15.4.3发布报表 389
15.5使用集成服务 390
15.5.1创建包 390
15.5.2运行包 393
15.5.3包配置 395
15.5.4部署包 397
15.5.5包安装 398
15.6习题 400
第16章 产品展示模块 403
16.1系统分析 403
16.1.1需求分析 403
16.1.2数据库设计 404
16.2公共部分 405
16.2.1创建项目及设置配置文件 405
16.2.2页面样式 406
16.2.3实现母版页 410
16.3产品展示 413
16.3.1实现产品展示 413
16.3.2查看产品 415
16.3.3新增产品 416
16.3.4管理产品 417
16.4管理产品分类 420
第17章 图书馆管理系统 424
17.1系统分析 424
17.1.1需求分析 424
17.1.2数据库设计 425
17.2创建图书馆管理系统项目 428
17.2.1创建图书馆管理系统网站 428
17.2.2实现母版页 429
17.2.3设计数据库类 429
17.3登录模块 431
17.4系统设置模块 434
17.4.1管理系统用户 434
17.4.2新增系统用户 438
17.4.3退出图书馆管理系统 439
17.4.4管理书架 440
17.4.5新增书架 442
17.5管理读者模块 443
17.5.1管理读者类型 443
17.5.2新增读者类型 445
17.5.3管理读者信息 447
17.5.4新增读者信息 447
17.6管理图书模块 450
17.6.1管理图书类型 450
17.6.2新增图书类型 451
17.6.3管理图书 452
17.6.4新增图书 453
17.6.5查询图书 455
17.7借阅管理 456
17.7.1借阅图书 456
17.7.2归还图书 458
17.7.3图书借阅查询 459