第一篇 SQL Server 2008基础知识篇第1章 SQL Server 2008入门知识 1
1.1 数据库 1
1.1.1 数据库概念 2
1.1.2 数据库模型 2
1.2 关系数据库 3
1.2.1 关系数据库概念 4
1.2.2 关系数据库术语 5
1.2.3 关系数据库管理系统功能 6
1.2.4 关系模型完整性规则 6
1.3 范式理论 7
1.3.1 第一范式 7
1.3.2 第二范式 8
1.3.3 第三范式 9
1.4 E-R模型 9
1.4.1 实体模型 9
1.4.2 关系模型 10
1.5 SQL Server 2008体系结构 11
1.6 SQL Server 2008新增功能与特性 13
1.6.1 新的日期数据类型 13
1.6.2 LINQ语言 15
1.6.3 HierarchyId类型 15
1.6.4 增强XML功能 16
1.6.5 Transact-SQL语言增强 18
1.6.6 报表服务 20
1.6.7 集成服务 20
1.6.8 分析服务 21
1.6.9 Office集成特性 21
1.7 使用SQL Server 2008 22
1.7.1 安装SQL Server 2008 22
1.7.2 验证安装 28
1.7.3 注册服务器 28
1.7.4 配置服务器 30
第2章 使用SQL Server 2008管理工具 32
2.1 Business Intelligence Development Studio 32
2.2 SQL Server Management Studio 33
2.2.1 SQL Server Management Studio简介 33
2.2.2 对象资源管理器 35
2.2.3 已注册的服务器 35
2.2.4 解决方案资源管理器 36
2.2.5 模板资源管理器 37
2.3 SQL Server Profiler 38
2.4 SQL Server联机丛书 40
2.5 Reporting Services配置 42
2.6 SQL Server配置管理器 43
2.7 SQL Server错误和使用情况报告 45
2.8 数据库引擎优化顾问 46
2.9 命令提示实用工具 46
2.9.1 sqlcmd 46
2.9.2 其他工具 48
第二篇 SQL Server 2008日常操作篇第3章 SQL Server 2008数据库管理 49
3.1 数据库的组成 49
3.1.1 系统数据库 49
3.1.2 数据库存储文件 51
3.1.3 数据库元素 51
3.2 数据库快照 53
3.2.1 数据库快照概述 53
3.2.2 创建数据库快照 53
3.2.3 使用数据库快照 54
3.3 创建数据库 55
3.3.1 使用向导创建 55
3.3.2 使用SQL语句创建基本数据库 58
3.3.3 指定多个数据库文件创建数据库 60
3.3.4 指定多个文件组的数据库 61
3.4 数据库基本操作 63
3.4.1 修改数据库名称 63
3.4.2 扩大数据库文件 64
3.4.3 收缩数据库文件 65
3.4.4 添加辅助数据文件 65
3.4.5 删除数据库 67
3.4.6 查看数据库状态 68
3.5 数据库其他操作 70
3.5.1 分离数据库 71
3.5.2 附加数据库 72
3.5.3 收缩数据库 73
3.5.4 复制和移动数据库 74
3.5.5 优化数据库 78
第4章 SQL Server 2008数据表管理 80
4.1 表概述 80
4.1.1 什么是表 80
4.1.2 系统表和临时表 81
4.2 使用CREATE TABLE语句创建表 82
4.2.1 基本语法 82
4.2.2 创建主键列 83
4.2.3 创建外键 84
4.2.4 创建非空列 84
4.2.5 创建默认值定义 85
4.2.6 创建CHECK约束列 85
4.2.7 创建自动编号列 86
4.2.8 创建唯一列 87
4.3 使用图形界面创建表 88
4.4 列数据类型 89
4.4.1 精确数字类型 90
4.4.2 近似数字类型 90
4.4.3 Unicode字符数据类型 90
4.4.4 二进制数据类型 91
4.4.5 日期和时间数据类型 91
4.4.6 字符串数据类型 91
4.4.7 其他数据类型 92
4.4.8 创建自定义数据类型 92
4.5 修改数据表 95
4.5.1 重命名/删除表 95
4.5.2 修改列属性 96
4.5.3 添加/删除表列 97
4.5.4 表的关系图 98
4.6 约束 100
4.6.1 数据库完整性 100
4.6.2 主关键字约束 101
4.6.3 外关键字约束 103
4.6.4 唯一性约束 105
4.6.5 CHECK约束 106
4.6.6 DEFAULT约束 106
4.6.7 NOT NULL约束 107
4.7 使用规则 107
4.7.1 创建规则 107
4.7.2 绑定规则 107
4.7.3 查看规则 108
4.7.4 删除规则 109
4.8 使用默认值 110
4.8.1 创建默认值 111
4.8.2 绑定默认值 111
4.8.3 查看默认值 112
4.8.4 删除默认值 113
第5章 操作架构、视图和索引 115
5.1 使用架构 115
5.1.1 使用图形界面创建架构 115
5.1.2 使用CREATE SCHEMA语句创建架构 117
5.1.3 修改架构 118
5.1.4 移动对象到新的架构 119
5.1.5 删除架构 121
5.2 使用视图 122
5.2.1 使用图形界面创建视图 122
5.2.2 使用CREATE VIEW语句 124
5.2.3 更新视图 129
5.2.4 查看视图 132
5.2.5 修改视图 132
5.2.6 删除视图 133
5.3 索引 134
5.3.1 索引概述 134
5.3.2 选择索引类型 135
5.3.3 确定索引列 136
5.3.4 创建索引 137
5.3.5 查看索引属性 139
5.3.6 修改索引 140
5.3.7 删除索引 142
5.3.8 使用数据库引擎优化顾问 142
第三篇 SQL Server 2008数据处理篇第6章 数据查询和管理 147
6.1 基本SELECT语句 147
6.1.1 SELECT基本语句 148
6.1.2 取消重复元组 149
6.1.3 使用TOP关键字 150
6.1.4 查询计算列 151
6.1.5 使用别名查询 152
6.2 限定查询条件 153
6.2.1 比较运算符 154
6.2.2 范围运算符 155
6.2.3 逻辑运算符 156
6.2.4 字符匹配 158
6.2.5 列表运算符 160
6.2.6 未知值 161
6.3 规范化查询 162
6.3.1 排序查询 162
6.3.2 分组查询 163
6.3.3 统计查询 164
6.4 插入数据 165
6.4.1 简单的数据插入 165
6.4.2 将一个表中的数据插入到另一个表中 167
6.4.3 将查询结果集插入到一个新表中 169
6.5 更新数据 170
6.5.1 根据表中数据更新行 170
6.5.2 根据其他表更新行 171
6.5.3 使用TOP表达式 172
6.6 删除数据 173
6.6.1 使用DELETE语句 174
6.6.2 使用TRUNCATE TABLE语句 176
6.6.3 删除基于其他表中的行 177
第7章 高级查询 178
7.1 多表查询 178
7.1.1 内连接 178
7.1.2 外连接 180
7.1.3 交叉连接 182
7.1.4 自连接 183
7.1.5 联合查询 184
7.1.6 交查询 185
7.1.7 差查询 186
7.2 子查询 186
7.2.1 IN关键字 187
7.2.2 使用EXISTS关键字 188
7.2.3 比较运算符 189
7.2.4 单值子查询 190
7.2.5 嵌套子查询 190
7.3 XML查询 191
7.3.1 XML数据类型 191
7.3.2 XQuery查询 192
7.3.3 使用FOR XML ROW模式 194
7.3.4 使用FOR XML AUTO模式 194
7.3.5 使用FOR XML EXPLICIT模式 195
7.3.6 XML索引 198
7.3.7 OPENXML函数 199
第8章 Transact-SQL编程 202
8.1 Transact-SQL概述 202
8.1.1 什么是Transact-SQL 202
8.1.2 Transact-SQL语法规范 203
8.2 常量与变量 204
8.2.1 常量 204
8.2.2 变量 204
8.3 表达式 207
8.3.1 简单表达式 207
8.3.2 复杂表达式 208
8.3.3 注释 208
8.4 运算符 209
8.4.1 算术运算符 209
8.4.2 比较运算符 210
8.4.3 赋值运算符 211
8.4.4 位运算符 212
8.4.5 逻辑运算符 213
8.4.6 字符串连接运算符 214
8.4.7 一元运算符 215
8.4.8 运算符优先级 216
8.5 控制语句 218
8.5.1 BEGIN END语句块 218
8.5.2 IF条件语句 219
8.5.3 CASE分支语句 219
8.5.4 WHILE循环语句 221
8.5.5 TRY错误处理语句 222
8.6 函数 223
8.6.1 聚合函数 223
8.6.2 数学函数 225
8.6.3 配置函数 227
8.6.4 字符串函数 228
8.6.5 数据类型转换函数 230
8.6.6 日期和时间函数 231
8.6.7 文本和图像函数 232
8.6.8 用户自定义函数 232
8.7 事务与锁 235
8.7.1 事务 235
8.7.2 锁 237
8.8 游标 238
8.8.1 定义游标 238
8.8.2 打开游标 239
8.8.3 检索游标 239
8.8.4 关闭与删除游标 240
第9章 存储过程 242
9.1 存储过程概述 242
9.1.1 用户自定义存储过程 242
9.1.2 扩展存储过程 243
9.1.3 系统存储过程 243
9.2 创建存储过程 246
9.2.1 存储过程创建规则 247
9.2.2 创建简单存储过程 247
9.2.3 创建加密存储过程 250
9.2.4 创建临时存储过程 251
9.2.5 创建嵌套存储过程 251
9.3 使用存储过程参数 253
9.3.1 指定参数名称和数据类型 253
9.3.2 输入参数 254
9.3.3 为参数指定默认值 255
9.3.4 指定输出参数 256
9.4 执行存储过程 257
9.4.1 通过存储过程自身执行 257
9.4.2 在INSERT语句中执行 259
9.4.3 通过图形化界面执行 260
9.5 管理存储过程 261
9.5.1 查看存储过程 261
9.5.2 修改存储过程 263
9.5.3 删除存储过程 265
9.6 CLR存储过程 266
9.6.1 创建CLR存储过程 266
9.6.2 创建返回行集和信息的CLR存储过程 269
9.6.3 删除CLR存储过程和程序集 270
第10章 触发器 271
10.1 什么是触发器 271
10.1.1 触发器概述 271
10.1.2 触发器的分类 273
10.2 创建DML触发器 273
10.2.1 创建触发器语法 273
10.2.2 创建INSERT触发器 274
10.2.3 创建DELETE触发器 276
10.2.4 创建UPDATE触发器 277
10.2.5 创建INSTEAD OF触发器 279
10.3 创建DDL触发器 280
10.3.1 创建DDL触发器语法 280
10.3.2 创建数据库作用域的DDL触发器 281
10.3.3 创建服务器作用域的DDL触发器 281
10.4 嵌套触发器 282
10.5 递归触发器 284
10.6 CLR触发器 287
10.6.1 创建CLR DML触发器 287
10.6.2 创建CLR DDL触发器 291
10.7 管理触发器 293
10.7.1 修改触发器 293
10.7.2 禁用触发器 294
10.7.3 启用触发器 295
10.7.4 删除触发器 295
第四篇 SQL Server 2008数据库管理篇第11章 SQL Server 2008的安全机制 297
11.1 安全机制简介 297
11.1.1 客户机安全机制 298
11.1.2 网络传输安全机制 298
11.1.3 实例级别安全机制 299
11.1.4 数据库级别安全机制 299
11.1.5 对象级别安全机制 299
11.2 SQL Server身份验证模式 300
11.2.1 Windows身份验证模式 300
11.2.2 混合模式 301
11.2.3 配置身份验证模式 302
11.3 SQL Server 2008登录 302
11.3.1 创建Windows登录账户 303
11.3.2 创建SQL Server登录账户 304
11.3.3 使用图形化界面管理登录账户 307
11.3.4 通过命令管理登录账户 309
11.4 数据库用户 311
11.4.1 查看默认数据库用户 311
11.4.2 创建数据库用户 313
11.4.3 使用存储过程创建数据库用户 313
11.5 角色 315
11.5.1 固定服务器角色 315
11.5.2 固定数据库角色 316
11.5.3 用户自定义数据库角色 317
11.5.4 应用程序角色 320
11.6 管理角色 323
11.6.1 将登录指派到角色 323
11.6.2 指派角色到多个登录 324
11.7 权限 325
11.7.1 权限概述 325
11.7.2 授予权限 326
11.7.3 撤销权限 327
11.7.4 拒绝权限 327
11.8 DENY否决优先权 328
第12章 备份与恢复数据库 330
12.1 备份概述 330
12.1.1 备份的重要性 330
12.1.2 备份类型 331
12.1.3 备份恢复模式 333
12.2 备份设备 334
12.2.1 备份设备类型 334
12.2.2 创建备份设备 335
12.2.3 查看所有备份设备 337
12.2.4 删除备份设备 337
12.3 执行完整备份 338
12.3.1 图形化界面创建完整备份 338
12.3.2 使用BACKUP语句创建完整备份 340
12.4 执行差异备份 341
12.4.1 图形化界面创建差异备份 342
12.4.2 使用WITH DIFFERENTIAL子句 343
12.5 执行事务日志备份 345
12.5.1 图形化界面创建事务日志备份 345
12.5.2 使用BACKUP LOG语句 346
12.6 执行文件和文件组备份 348
12.6.1 创建前的准备工作 348
12.6.2 图形化界面创建文件和文件组备份 350
12.6.3 使用BACKUP语句创建文件和文件组备份 351
12.7 其他备份选项 352
12.7.1 备份到多个设备 352
12.7.2 备份压缩 353
12.8 设计备份策略 355
12.9 恢复数据 357
12.9.1 常规恢复 357
12.9.2 模拟时间点恢复环境 359
12.9.3 按时间点恢复数据 361
第13章 自动化SQL Server 2008数据库 363
13.1 SQL Server 2008自动化概述 363
13.1.1 自动化管理的功能 363
13.1.2 动化管理元素 364
13.2 配置SQL Server代理 365
13.2.1 启用SQL Server代理服务 365
13.2.2 SQL Server代理服务安全性 367
13.3 数据库邮件 368
13.3.1 配置数据库邮件 368
13.3.2 发送测试电子邮件 372
13.3.3 管理邮件配置文件和邮件账户 372
13.3.4 管理配置文件的安全性 374
13.3.5 使用邮件配置文件 374
13.4 操作员 376
13.4.1 创建操作员 376
13.4.2 禁用和删除操作员 377
13.4.3 创建防故障操作员 378
13.5 作业 379
13.5.1 作业概述 379
13.5.2 创建本地作业 380
13.5.3 创建多服务作业 385
13.5.4 设置多服务器作业 387
13.6 警报 388
13.6.1 警报概述 388
13.6.2 事件警报 389
13.6.3 性能警报 391
13.6.4 WMI警报 392
13.6.5 禁用和删除警报 393
13.7 数据库维护 393
13.7.1 数据库维护清单 393
13.7.2 确定维护任务 394
13.7.3 创建维护计划 395
13.7.4 查看、编辑、运行和删除维护计划 399
第14章 集成服务 400
14.1 集成服务概述 400
14.1.1 集成服务简介 400
14.1.2 集成服务体系结构 401
14.2 创建包 402
14.2.1 创建项目 402
14.2.2 使用导入和导出向导 404
14.2.3 使用SSIS设计器 407
14.3 运行包 410
14.3.1 SSIS设计器运行包 410
14.3.2 SQL Server Management Studio运行包 412
14.3.3 SQL Server代理运行包 414
14.4 部署包 415
14.4.1 包配置 415
14.4.2 部署实用工具 417
14.4.3 包安装 418
第15章 报表服务 421
15.1 报表服务基础 421
15.1.1 报表服务概述 421
15.1.2 报表生命周期 422
15.1.3 关键术语 424
15.1.4 报表构件及工具 425
15.2 创建报表 427
15.2.1 使用报表向导设计报表 427
15.2.2 使用报表设计器 433
15.2.3 为报表设计参数 437
15.2.4 导入报表 440
15.2.5 创建报表模型 441
15.2.6 使用报表生成器设计报表 444
15.3 发布报表 447
15.3.1 设置部署属性 447
15.3.2 生成和部署报表 448
15.4 管理报表 449
15.4.1 管理文件夹 449
15.4.2 查看、转移和删除报表 451
15.4.3 配置报表属性 453
15.5 报表传递 456
15.5.1 订阅 456
15.5.2 共享计划 458
15.5.3 导出报表 459
15.6 报表服务安全 460
15.6.1 角色概述 460
15.6.2 创建角色 462
15.6.3 角色分配 462
第16章 分析服务 465
16.1 了解OLAP 465
16.2 分析服务术语 466
16.3 使用分析服务 467
16.3.1 创建分析服务项目 468
16.3.2 创建数据源 468
16.3.3 创建数据源视图 470
16.3.4 创建多维数据集 472
16.3.5 部署多维数据集 474
16.3.6 处理多维数据集 475
16.3.7 浏览多维数据集 476
16.3.8 添加筛选条件 478
16.4 使用维度向导 479
16.4.1 基于数据源视图的标准维度 479
16.4.2 不使用现有数据源视图的标准维度 481
16.4.3 创建时间维度 483
16.5 数据挖掘 486
16.5.1 数据挖掘算法 487
16.5.2 使用数据挖掘向导 488
16.6 部署分析服务 491
16.6.1 规划分析服务部署 491
16.6.2 使用分析服务部署向导 491
第五篇 SQL Server 2008高级应用篇第17章 SQL Server 2008复制技术 495
17.1 复制概述 495
17.1.1 复制术语 496
17.1.2 确定复制类型 497
17.1.3 设计复制方案 498
17.1.4 选择复制代理 498
17.1.5 选择订阅类型 499
17.2 配置分发向导 500
17.3 分发服务器管理 503
17.3.1 启用数据库的复制特性 503
17.3.2 更新分发服务器 504
17.3.3 创建分发数据库 506
17.3.4 删除分发数据库 507
17.3.5 禁用发布和分发 507
17.4 实施快照复制 509
17.4.1 创建快照发布 509
17.4.2 创建快照订阅 512
17.4.3 测试快照复制 517
17.5 管理复制 519
17.5.1 查看和修改发布属性 519
17.5.2 查看和修改项目属性 520
17.5.3 添加筛选行 521
第18章 监视SQL Server 2008 522
18.1 监视服务器的性能和活动 522
18.1.1 为什么要监视SQL Server 522
18.1.2 准备监视 523
18.1.3 监视工具 523
18.2 监视SQL Server性能 524
18.2.1 配置警报 525
18.2.2 创建计数器日志 527
18.2.3 创建跟踪日志 529
18.2.4 重播性能日志 529
18.3 SQL Server Profiler监视查询 530
18.3.1 创建跟踪 530
18.3.2 重播跟踪 533
18.4 SQL Management Studio查询编辑器 534
18.5 使用活动监视器 536
18.5.1 打开活动监视器 536
18.5.2 查看进程 537
18.5.3 查看进程详细信息 538
18.5.4 查看等待资源 538
18.5.5 查看数据文件I/O 539
18.5.6 查看最近耗费大量资源的查询 539
18.6 监视错误日志 540
18.6.1 SQL Server错误日志 540
18.6.2 Windows应用程序日志 541
18.7 优化SQL Server服务器性能 542
18.7.1 配置内存选项 543
18.7.2 配置I/O选项 544
第19章 使用ADO.NET访问SQL Server 2008 546
19.1 ADO.NET简介 546
19.1.1 ADO.NET概述 546
19.1.2 System.Data命名空间 548
19.2 显示学生信息 549
19.2.1 连接数据库 549
19.2.2 创建查询 551
19.2.3 创建数据集 553
19.2.4 填充数据集 553
19.2.5 使用控件显示数据 555
19.2.6 数据绑定 556
19.3 修改和删除学生记录 558
19.3.1 新增学生记录 558
19.3.2 使用参数化语句更新学生数据 560
19.3.3 使用存储过程删除学生记录 562
19.3.4 使用SqlDataAdapter更新数据源 565
19.4 数据优化操作 570
19.4.1 高效地使用连接 570
19.4.2 使用DataTable分页数据 572
19.4.3 使用SqlDataReader检索数据 576
第六篇 SQL Server 2008综合实例篇第20章 通讯录 579
20.1 系统概述 579
20.2 数据库设计 580
20.2.1 数据表设计 580
20.2.2 存储过程设计 582
20.3 系统实现 583
20.3.1 用户登录 583
20.3.2 查看所有好友 586
20.3.3 查看好友详细信息 589
20.3.4 修改好友资料 591
20.3.5 添加好友信息 594
20.3.6 更新好友照片 596
20.3.7 管理分组 599
20.3.8 修改登录密码 607
20.3.9 用户退出 609
第21章 企业网站 611
21.1 需要分析 611
21.1.1 功能分析 611
21.1.2 开发架构 613
21.2 数据库设计 614
21.2.1 数据表设计 614
21.2.2 设计存储过程 616
21.2.3 设计表值函数 622
21.3 实体类 624
21.3.1 产品实体类 624
21.3.2 产品类别实体类 625
21.4 数据访问层 626
21.4.1 产品数据管理 626
21.4.2 产品类别数据管理 633
21.5 业务逻辑层 639
21.5.1 产品业务逻辑 639
21.5.2 产品分类业务逻辑 643
21.6 界面表示层 646
21.6.1 母版页 646
21.6.2 绑定数据 647
21.7 整合并运行网站 649
21.7.1 网站前台 649
21.7.2 后台管理 652
第22章 日志管理模块 659
22.1 准备工作 659
22.1.1 开发前准备 659
22.1.2 测试连接 660
22.2 数据库设计 662
22.3 功能实现 662
22.3.1 实现公共类 662
22.3.2 浏览日志 665
22.3.3 添加日志 668
22.3.4 修改日志 671
22.3.5 删除日志 674
第23章 投票管理系统 676
23.1 系统分析 676
23.1.1 需求分析 676
23.1.2 配置PHP连接SQL Server 2008环境 676
23.1.3 设计数据库 678
23.2 登录模块 679
23.2.1 用户登录 679
23.2.2 用户退出 681
23.3 管理投票主题 681
23.3.1 投票主题管理页面 681
23.3.2 修改投票主题 683
23.3.3 删除投票主题 685
23.3.4 新增投票主题 686
23.4 管理投票主题选项 687
23.4.1 管理投票主题选项 687
23.4.2 增加投票主题选项 692
23.5 投票页面 692
23.6 查看投票结果页面 696