第一篇 SQL Server 2008基础知识第1章 引言 2
1.1 数据库的发展 2
1.1.1 手工阶段 2
1.1.2 文件系统阶段 3
1.1.3 数据库管理系统阶段 4
1.2 数据模型 5
1.2.1 层次数据库管理系统 5
1.2.2 网状数据库管理系统 6
1.2.3 关系数据库管理系统 8
1.3 对象-关系映射思想 10
1.3.1 对象-关系映射 10
1.3.2 对象-关系映射系统 11
1.4 数据库管理系统用途 11
1.4.1 作为C/S软件系统的后台 11
1.4.2 作为B/S软件系统的后台 12
1.5 小结 12
第2章 SQL Server 2008入门 13
2.1 SQL Server 2008的产品组件与版本 13
2.1.1 SQL Server的发展史 13
2.1.2 SQL Server 2008的产品组件 14
2.1.3 SQL Server 2008的版本 14
2.2 SQL Server 2008新性能 15
2.2.1 对于SQL Server 2005的升级 15
2.2.2 对于SQL Server 2000的升级 16
2.2.3 管理工具的提升 17
2.2.4 编程扩展 17
2.3 与其他流行数据库的比较 18
2.3.1 比较的标准 18
2.3.2 与Oracle的比较 19
2.3.3 与MySQL的比较 19
2.3.4 与DB2的比较 19
2.4 小结 20
第3章 规划、安装和配置SQL Server 2008 21
3.1 规划SQL Server 2008 21
3.1.1 企业信息化战略 21
3.1.2 企业网络结构 21
3.1.3 安装于WEB服务器 22
3.1.4 安装于独立的数据库服务器 23
3.2 安装SQL Server 2008 23
3.2.1 SQL Server所需的软硬件环境 23
3.2.2 创建Windows账户 25
3.2.3 安装SQL Server 2008 27
3.2.4 SQL Server 2008安装的一些注意事项 35
3.3 升级到SQL Server 2008 36
3.3.1 企业进行升级准备 37
3.3.2 SQL Server 2008升级顾问 37
3.3.3 升级安装 41
3.3.4 迁移安装 42
3.4 SQL Server 2008的目录和服务 42
3.4.1 SQL Server 2008实例的文件 42
3.4.2 SQL Server 2008实例的服务 43
3.5 修改SQL Server 2008实例 44
3.5.1 添加功能组件 45
3.5.2 修复现有的功能组件 47
3.5.3 删除SQL Server 2008实例 48
3.6 配置SQL Server 2008 49
3.6.1 服务端网络设置 49
3.6.2 客户端网络设置 50
3.6.3 SQL Server Management Studio:图形界面工具 51
3.6.4 设置SQL Server Management Studio工具 53
3.6.5 服务器配置选项 55
3.7 小结 58
第4章 创建数据库 59
4.1 数据库创建基础 59
4.1.1 使用SQL Server Management Studio查询窗口 59
4.1.2 使用SQL Server Management Studio图形化 61
4.1.3 使用数据库 62
4.1.4 删除数据库 63
4.1.5 命令行工具 64
4.1.6 CREATE DATABASE语句:创建数据库 66
4.2 数据库的组成 69
4.2.1 数据库的文件组成 69
4.2.2 数据库的对象组成 71
4.3 设置数据库选项 72
4.4 变更数据库 73
4.4.1 数据库更名 73
4.4.2 变更文件组 75
4.4.3 变更数据库的文件 76
4.5 移动数据库 81
4.5.1 分离 81
4.5.2 附加 82
4.6 系统数据库介绍 84
4.6.1 系统数据库 84
4.6.2 master数据库:记录系统级别信息 84
4.6.3 msdb数据库:用于计划警报和作业 84
4.6.4 model数据库:创建用户数据库的模板 85
4.6.5 resource数据库:包含系统对象 85
4.6.6 tempdb数据库:全局临时资源 86
4.7 小结 86
第5章 创建表 87
5.1 表创建基础 87
5.1.1 SQL Server Management Studio的鼠标操作方式 87
5.1.2 SQL Server Management Studio的查询方式 90
5.1.3 鼠标操作方式和查询方式 90
5.2 什么是表 91
5.2.1 SQL Server中表概述 91
5.2.2 SQL Server中的系统表 92
5.2.3 用户自定义表 93
5.2.4 临时表 93
5.2.5 专用的管理员连接 94
5.3 数据类型 96
5.3.1 数据类型 96
5.3.2 精确数字类型 97
5.3.3 近似数字类型 99
5.3.4 Unicode字符串 100
5.3.5 字符串数据类型的排序规则和存储 101
5.3.6 二进制字符串 105
5.3.7 日期和时间 111
5.3.8 字符串 112
5.3.9 其他数据类型 113
5.3.10 创建自定义的数据类型 117
5.4 列的其他属性 120
5.4.1 NULL与NOT NULL约束 120
5.4.2 IDENTITY的应用 121
5.5 小结 122
第6章 SQL Server的命名规则 123
6.1 命名原则 123
6.1.1 匈牙利命名法 123
6.1.2 驼峰法 123
6.2 创建中文命名的表 124
6.3 创建名称带空格的表 125
6.4 创建使用标识符命名的表 126
6.5 SQL Server的标识符 127
6.5.1 标识符分类 127
6.5.2 标识符格式 128
6.6 小结 129
第7章 基本SQL语句 130
7.1 Transact-SQL语言 130
7.2 数据定义语言 131
7.2.1 CREATE语句:创建数据库 131
7.2.2 DROP语句:删除数据库 137
7.2.3 ALTER语句:修改数据库 138
7.2.4 REVOKE语句:安全性语句 139
7.3 数据操纵语言 139
7.3.1 SELECT语句:查询数据 139
7.3.2 INSERT语句:插入数据 143
7.3.3 UPDATE语句:更新数据 145
7.3.4 Delete语句:删除数据 146
7.4 其他常用语句 147
7.4.1 WHERE子句:给出条件语句 147
7.4.2 带AND关键字的WHERE子句 153
7.4.3 GROUP BY子句:分组语句 154
7.4.4 HAVING子句:分组条件 156
7.4.5 ORDER BY子句:排序语句 158
7.4.6 TOP子句:查看前几条记录 159
7.4.7 DISTINCT子句:去掉重复记录 161
7.4.8 BETWEEN子句:指定范围条件 161
7.4.9 模糊查询LIKE子句 163
7.4.10 IN子句:值包含在列表中 164
7.4.11 NOT IN子句:值不包含在列表中 165
7.4.12 COMPUTE子句:用于生成统计信息 165
7.4.13 COMPUTE BY子句:计算统计信息 166
7.4.14 列的别名 166
7.5 关系连接 167
7.5.1 连接查询介绍 167
7.5.2 笛卡尔积 168
7.5.3 内部连接 170
7.5.4 使用表别名 172
7.5.5 外部连接 172
7.5.6 自连接 174
7.5.7 联合查询 175
7.6 小结 176
第8章 数据库关系图 177
8.1 表的主键 177
8.1.1 主键 177
8.1.2 表student和表student_new 177
8.1.3 在一个列上创建主键 178
8.1.4 在多个列的组合上创建主键 181
8.1.5 创建主键的语法 183
8.1.6 查看主键 184
8.2 表的外键 185
8.2.1 外键 185
8.2.2 表prize_student和表prize_student_new 185
8.2.3 在一个列上创建外键 186
8.2.4 在多个列的组合上创建外键 188
8.2.5 创建外键的语法 190
8.2.6 查看外键 191
8.3 使用主键和外键 192
8.3.1 仅含主键的表 192
8.3.2 含主键和外键的外键表 193
8.3.3 含主键的主键表 194
8.4 表关系类型 195
8.5 数据库关系图 195
8.5.1 添加数据库关系图支持 196
8.5.2 创建数据库关系图 196
8.6 小结 199
第二篇 数据库核心技术 202
第9章 数据库的高级操作 202
9.1 使用SQL查看数据库的对象 202
9.1.1 查看当前SQL Server实例的所有数据库 202
9.1.2 查看当前数据库下的表 203
9.1.3 查看表的信息 204
9.2 收缩数据库 206
9.2.1 自动收缩数据库 206
9.2.2 手动收缩 207
9.2.3 使用SQL Server Management Studio手动收缩数据库或文件 209
9.3 使用Windows管理工具【性能】监视服务器 209
9.3.1 【性能】的使用方案 209
9.3.2 使用【性能】监视磁盘活动 210
9.3.3 使用【性能】监视CPU使用率 213
9.3.4 使用【性能】监视内存使用量 213
9.3.5 使用【性能】监视SQL Server等对象 214
9.3.6 使用【性能】的日志和警报 214
9.4 SQL跟踪 217
9.4.1 SQL Server Profiler介绍:SQL跟踪图形化工具 217
9.4.2 使用SQL Server Profiler创建跟踪 217
9.4.3 使用SQL Server Profiler重播跟踪 220
9.4.4 使用SQL Server Profiler创建跟踪模板 221
9.4.5 系统存储过程创建SQL跟踪 222
9.5 资源调控器 225
9.5.1 【资源调控器】介绍 226
9.5.2 资源池 227
9.5.3 工作负荷组 230
9.5.4 分类器函数 231
9.5.5 使用SQL语句查询【资源调控器】中的内容 233
9.6 小结 235
第10章 表的高级操作 236
10.1 数据导入导出 236
10.1.1 支持的数据源 236
10.1.2 将数据导出到Microsoft Excel 237
10.1.3 从Microsoft Excel导入数据 242
10.2 更改跟踪 246
10.2.1 更改跟踪 246
10.2.2 更改跟踪的同步方案 247
10.2.3 启用更改跟踪 248
10.2.4 管理更改跟踪 250
10.2.5 使用更改跟踪 253
10.3 变更数据捕获 258
10.3.1 变更数据捕获介绍 258
10.3.2 启用变更数据捕获 259
10.3.3 管理变更数据捕获 261
10.3.4 使用变更数据捕获 264
10.3.5 变更数据捕获的日志 266
10.4 小结 267
第11章 数据完整性 268
11.1 数据完整性介绍 268
11.2 约束 269
11.2.1 NOT NULL约束:不允许空值 269
11.2.2 CHECK约束:添加约束条件 270
11.2.3 UNIQUE约束:重复约束 274
11.2.4 主键与外键约束 276
11.3 默认值 276
11.3.1 默认值介绍 276
11.3.2 定义DEFAULT 277
11.3.3 使用DEFAULT 278
11.4 小结 279
第12章 视图 280
12.1 视图介绍 280
12.1.1 视图定义 280
12.1.2 视图的类型 280
12.1.3 视图的限制 281
12.2 标准视图 281
12.2.1 SQL Server Management Studio的视图设计环境 281
12.2.2 创建仅使用当前数据库的表的视图 283
12.2.3 创建使用当前数据库的表和视图的视图 285
12.2.4 创建使用多个数据库的表的视图 286
12.2.5 管理视图 288
12.2.6 视图的用途 290
12.2.7 使用视图更新基表的数据 291
12.3 索引视图 293
12.3.1 索引视图的要求 293
12.3.2 创建索引视图 294
12.4 小结 295
第13章 存储过程 296
13.1 存储过程介绍 296
13.1.1 理解存储过程 296
13.1.2 存储过程的要求 297
13.1.3 存储过程的类型 298
13.2 Transact-SQL存储过程 298
13.2.1 CREATE PROCEDURE语句:创建存储过程 298
13.2.2 EXECUTE语句:执行存储过程 299
13.2.3 不带参数的存储过程 300
13.2.4 带输入参数的存储过程 302
13.2.5 带输入参数和输出参数的存储过程 303
13.2.6 输入参数含默认值的存储过程 305
13.2.7 运行时重新编译 306
13.2.8 查看当前数据库中的存储过程 307
13.2.9 管理存储过程 309
13.3 CLR存储过程 311
13.3.1 CLR数据类型与SQL Server数据类型 311
13.3.2 使用Visual Studio 2008创建CLR存储过程 312
13.3.3 执行CLR存储过程 316
13.4 小结 316
第14章 函数 317
14.1 函数的限制 317
14.2 创建表值函数 318
14.2.1 多语句表值函数 318
14.2.2 创建一个没有参数的多语句表值函数 319
14.2.3 使用多语句表值函数 321
14.2.4 创建一个带参数的多语句表值函数 321
14.2.5 创建一个带参数默认值的多语句表值函数 322
14.2.6 内联表值函数 324
14.3 创建标量值函数 325
14.3.1 标量值函数 325
14.3.2 创建多语句标量值函数 326
14.3.3 使用标量值函数 327
14.4 创建和执行聚合函数(CLR) 327
14.4.1 创建CLR聚合函数 328
14.4.2 执行CLR聚合函数 331
14.5 系统聚合函数 332
14.5.1 系统聚合函数介绍 332
14.5.2 AVG函数与SUM函数:平均值和总和 333
14.5.3 BINARY_CHECKSUM函数:行的二进制校验 334
14.5.4 COUNT函数:记录的总数 335
14.5.5 MAX函数与MIN函数:最大值和最小值 335
14.5.6 VAR函数与STDEV函数:方差与标准方差 336
14.6 系统数学函数 337
14.7 小结 340
第15章 同义词 341
15.1 同义词的含义 341
15.2 创建和使用同义词 342
15.2.1 使用SQL Server Management Studio创建同义词 342
15.2.2 CREATE SYNONYM语句:创建同义词的语句 343
15.2.3 基于其他对象创建同义词 343
15.2.4 使用同义词 344
15.3 管理同义词 344
15.4 小结 346
第16章 触发器 347
16.1 触发器概述 347
16.2 登录触发器 347
16.2.1 登录触发器的执行时机和作用 347
16.2.2 SQL登录触发器 348
16.2.3 登录触发器的常见错误 350
16.3 DDL触发器 353
16.3.1 DDL触发器的执行时机和作用 353
16.3.2 DLL触发器关联的事件组 353
16.3.3 DLL触发器关联的事件 354
16.3.4 EVENTDATA函数:返回事件的XML结构 356
16.3.5 SQL DDL触发器 357
16.4 DML触发器 359
16.4.1 DML触发器类型 360
16.4.2 DML触发器的作用 360
16.4.3 DML触发器的创建语句 360
16.5 AFTER触发器 361
16.5.1 AFTER-INSERT触发器 362
16.5.2 AFTER-UPDATE触发器 363
16.5.3 AFTER-DELETE触发器 364
16.6 INSTEAD OF触发器 365
16.7 小结 367
第17章 Transact-SQL结构化程序设计 368
17.1 变量 368
17.1.1 变量的作用域与GO语句 368
17.1.2 定义变量 369
17.2 常量 372
17.3 运算符 374
17.3.1 算术运算符 374
17.3.2 逻辑运算符 374
17.3.3 赋值运算符 378
17.3.4 字符串运算符 378
17.3.5 按位运算符 379
17.3.6 比较运算符 379
17.3.7 复合运算符 380
17.4 控制流语句 380
17.4.1 BEGIN END语句 380
17.4.2 IF语句 381
17.4.3 WHILE循环 383
17.4.4 其他语句 384
17.5 小结 386
第18章 索引 387
18.1 索引介绍 387
18.1.1 索引的类型 387
18.1.2 索引的要求和注意事项 388
18.2 创建索引 388
18.2.1 使用SQL Server Management Studio创建索引 389
18.2.2 CREATE INDEX创建索引 391
18.3 管理索引 393
18.3.1 查看索引的信息 393
18.3.2 修改索引 393
18.4 小结 394
第19章 事务与锁 395
19.1 事务介绍 395
19.1.1 事务的例子 395
19.1.2 事务的特点 396
19.1.3 设置事务的隔离级别(并发性) 397
19.2 使用事务 398
19.2.1 事务的分类 398
19.2.2 使用SQL编写事务 398
19.2.3 使用ADO编写事务 400
19.2.4 管理事务 403
19.2.5 编写事务的原则 403
19.3 事务日志 404
19.3.1 事务日志的位置 404
19.3.2 管理事务日志 405
19.4 小结 407
第三篇 SQL Server 2008应用第20章 SQL Server 2008的安全机制和技术 410
20.1 SQL Server的身份验证模式 410
20.1.1 使用混合模式 410
20.1.2 使用Windows身份验证模式 411
20.1.3 配置SQL Server的身份验证模式 413
20.2 角色、登录名、用户 415
20.2.1 服务器级角色 415
20.2.2 登录名 417
20.2.3 用户 422
20.3 权限 423
20.3.1 安全对象 423
20.3.2 权限 423
20.3.3 操作权限 424
20.3.4 权限的层次 425
20.4 小结 426
第21章 备份与还原数据库 427
21.1 数据库损坏 427
21.1.1 错误操作 427
21.1.2 硬件损坏 429
21.2 备份 429
21.2.1 恢复模式 429
21.2.2 管理数据库的恢复模式 430
21.2.3 在SIMPLE恢复模式下备份 433
21.3 还原 437
21.3.1 查看备份的内容 437
21.3.1 SIMPLE(简单恢复模式)下的还原 438
21.4 小结 441
第22章 复制 442
22.1 安装SQL Server 2008 Express 442
22.1.1 下载SQL Server Express 442
22.1.2 安装SQL Server Express 444
22.2 复制 445
22.2.1 配置发布服务器 445
22.2.2 配置订阅服务器 450
22.2.3 使用复制操作 454
22.2.4 相应的SQL语句 455
22.3 小结 457
第23章 数据库镜像 458
23.1 数据库镜像概述 458
23.1.1 数据库镜像简介 458
23.1.2 “主体”与“镜像” 458
23.2 手动故障转移功能的高安全性模式 459
23.2.1 软件环境 459
23.2.2 准备镜像使用的数据库 461
23.2.3 为数据库实例创建数据库镜像端点 465
23.2.4 设置数据库镜像 467
23.2.5 测试数据库镜像 467
23.3 自动故障转移功能的高安全性模式 469
23.3.1 软件环境 469
23.3.2 准备镜像使用的数据库 470
23.3.3 为数据库实例创建数据库镜像端点 470
23.3.4 设置数据库镜像 472
23.3.5 测试数据库镜像 473
23.4 小结 474