第1章 数据库的安装与卸载 1
1.1 安装Oracle数据库 1
1.1.1 系统需求 1
1.1.2 安装过程 1
1.1.3 SQL*Plus工具和SCOTT用户 4
1.2 卸载Oracle数据库 7
1.3 本章小结 9
第2章 Oracle数据库体系结构 10
2.1 Oracle数据库的体系结构概述 10
2.1.1 服务器和实例 11
2.1.2 物理结构 12
2.1.3 参数文件和密码文件 12
2.2 Oracle数据库的连接与会话 13
2.2.1 连接 13
2.2.2 会话 13
2.3 Oracle数据库的内存结构 15
2.3.1 SGA 15
2.3.2 PGA 20
2.3.3 如何获得内存缓冲区的信息 21
2.4 Oracle数据库的服务器进程和用户进程 22
2.5 Oracle数据库的后台进程 22
2.5.1 系统监控进程(SMON) 23
2.5.2 进程监控进程(PMON) 23
2.5.3 数据库写进程(DBWR) 24
2.5.4 重做日志写进程(LGWR) 24
2.5.5 校验点进程(CKPT) 25
2.6 本章小结 25
第3章 数据库管理工具SQL*Plus 27
3.1 SQL*Plus的常用指令 27
3.1.1 desc指令 27
3.1.2 column指令 28
3.1.3 run或“/”指令 37
3.1.4 L(list)和n指令 38
3.1.5 change和n(next)指令 38
3.1.6 附加(a)指令 39
3.1.7 del指令 40
3.1.8 set line指令 41
3.1.9 spool指令 42
3.2 控制SQL*Plus工具的环境 43
3.2.1 ECHO环境变量 43
3.2.2 FEEDBACK环境变量 45
3.3 本章小结 46
第4章 SQL语言概述 47
4.1 SQL的语句分类 47
4.2 数据查询语句 48
4.2.1 关键字概述 48
4.2.2 使用运算符 53
4.2.3 使用单行函数 56
4.2.4 使用空值处理函数 65
4.2.5 使用逻辑判断功能 70
4.2.6 使用分组函数 72
4.3 数据操纵语句(DML) 76
4.3.1 INSERT语句 76
4.3.2 UPDATE语句 78
4.3.3 DELETE语句 79
4.4 本章小结 80
第5章 创建Oracle数据库 81
5.1 创建数据库的前提条件 81
5.2 使用DBCA创建数据库 82
5.2.1 DBCA概述 82
5.2.2 创建数据库的过程 83
5.2.3 理解建库脚本的含义 89
5.3 使用安装程序自动创建数据库 93
5.4 手工创建数据库 94
5.5 本章小结 98
第6章 管理和维护表 99
6.1 表的概述 99
6.2 创建表 102
6.2.1 创建普通表 102
6.2.2 创建临时表 104
6.3 维护参数 107
6.4 维护列 109
6.5 删除和截断表 113
6.6 分区表 116
6.6.1 分区表的分类及创建 116
6.6.2 分区表的优势 119
6.7 本章小结 119
第7章 数据字典 120
7.1 数据字典中的内容 120
7.2 数据字典视图的分类 121
7.3 数据字典视图的使用 125
7.4 动态性能视图的使用 127
7.5 本章小结 130
第8章 视图 131
8.1 什么是视图 131
8.2 创建视图 132
8.3 使用视图 135
8.4 修改视图 137
8.5 管理视图 138
8.5.1 通过数据字典查询视图 139
8.5.2 Oracle视图查询的内部过程 139
8.6 视图DML操作的限制 140
8.7 删除视图 140
8.8 物化视图 141
8.8.1 什么是物化视图 141
8.8.2 什么是查询重写 141
8.8.3 物化视图的同步 142
8.8.4 物化视图的创建 143
8.8.5 物化视图的使用环境 145
8.9 本章小结 146
第9章 事务 147
9.1 什么是事务 147
9.2 事务控制 148
9.2.1 使用COMMIT实现事务控制 148
9.2.2 使用ROLLBACK实现事务控制 150
9.2.3 程序异常退出对事务的影响 151
9.2.4 使用AUTOCOMMIT实现事务自动提交 153
9.3 本章小结 154
第10章 数据查询 155
10.1 简单查询 155
10.2 条件查询 161
10.3 子查询 163
10.4 连接查询 170
10.4.1 乘积连接 170
10.4.2 相等连接 171
10.4.3 自然连接 172
10.4.4 自连接 172
10.4.5 不等连接 173
10.4.6 外连接 174
10.5 本章小结 175
第11章 索引与约束 176
11.1 索引 176
11.1.1 建立索引 176
11.1.2 查看索引 179
11.1.3 B-树索引 180
11.1.4 位图索引 181
11.1.5 反向键索引 182
11.1.6 基于函数的索引 183
11.1.7 本地分区索引 184
11.1.8 监控索引 185
11.1.9 重建索引 186
11.1.10 维护索引 188
11.1.11 删除索引 189
11.2 约束 190
11.2.1 非空约束 190
11.2.2 唯一约束 193
11.2.3 主键约束 195
11.2.4 条件约束 197
11.2.5 外键约束 198
11.2.6 删除约束 201
11.2.7 其他约束维护 202
11.3 本章小结 203
第12章 数据库的启动与关闭 205
12.1 启动数据库 205
12.1.1 数据库的启动过程 205
12.1.2 数据库启动到NOMOUNT状态 206
12.1.3 数据库启动到MOUNT状态 210
12.1.4 数据库启动到OPEN状态 211
12.2 关闭数据库 213
12.2.1 数据库的关闭过程 214
12.2.2 数据库关闭时的重要参数解析 216
12.3 本章小结 217
第13章 控制文件 218
13.1 控制文件概述 218
13.2 存储多重控制文件 222
13.2.1 移动控制文件 223
13.2.2 添加控制文件 226
13.3 备份和恢复控制文件 227
13.3.1 备份控制文件 227
13.3.2 恢复控制文件 228
13.4 本章小结 231
第14章 参数文件 232
14.1 参数文件概述 232
14.2 静态参数文件 236
14.3 服务器动态参数文件 238
14.3.1 创建SPFILE文件 238
14.3.2 维护SPFILE文件 240
14.3.3 修改SPFILE中的参数值 241
14.3.4 取消SPFILE中的参数值 243
14.4 启动数据库实例 244
14.5 使用告警文件监督实例 245
14.6 本章小结 247
第15章 表空间与数据文件管理 248
15.1 逻辑结构和物理结构 248
15.2 表空间的分类 250
15.3 表空间的区段管理 250
15.3.1 数据字典管理的表空间 251
15.3.2 本地管理的表空间 251
15.4 表空间的创建 251
15.4.1 创建表空间概述 252
15.4.2 创建数据字典管理的表空间 253
15.4.3 创建本地管理的表空间 255
15.4.4 创建还原表空间 256
15.4.5 创建临时表空间 258
15.4.6 创建大文件表空间 262
15.5 表空间的管理 265
15.5.1 表空间的状态管理 265
15.5.2 表空间的内容管理 270
15.6 数据文件的管理 275
15.7 本章小结 277
第16章 重做日志管理 279
16.1 引入重做日志的原因 279
16.2 获取重做日志文件信息 280
16.2.1 v$log视图 280
16.2.2 v$logfile视图 281
16.3 重做日志组 282
16.3.1 添加重做日志组 282
16.3.2 删除重做日志组 284
16.4 重做日志成员 285
16.4.1 添加重做日志成员 285
16.4.2 删除重做日志成员 287
16.4.3 重设重做日志的大小 288
16.5 清除联机重做日志 290
16.6 日志切换和检查点事件 291
16.7 使用OMF管理重做日志文件 291
16.8 归档重做日志 293
16.9 本章小结 293
第17章 还原数据管理 294
17.1 引入还原数据的原因 294
17.2 还原段的分类 295
17.3 还原段的管理 296
17.4 还原表空间的创建 297
17.5 还原表空间的维护 298
17.6 还原表空间的切换 300
17.7 还原表空间的删除 301
17.8 undo_retention参数 302
17.9 本章小结 303
第18章 PL/SQL语言基础 304
18.1 PL/SQL的代码块结构 304
18.1.1 块头区 305
18.1.2 声明区 305
18.1.3 执行区 306
18.1.4 异常区 306
18.2 PL/SQL的流程控制语句 307
18.2.1 IF条件语句 307
18.2.2 CASE条件语句 308
18.2.3 循环语句 309
18.2.4 分支语句 311
18.3 PL/SQL的创建过程 311
18.3.1 开始编程 311
18.3.2 创建变量 311
18.3.3 添加执行代码 312
18.3.4 处理异常 313
18.4 PL/SQL的编译与执行 313
18.5 存储过程的授权 316
18.6 本章小结 317
第19章 存储过程、函数和游标 318
19.1 存储过程 318
19.1.1 存储过程概述 318
19.1.2 存储过程的创建 320
19.1.3 存储过程的注意事项 321
19.2 函数 322
19.2.1 函数概述 322
19.2.2 函数的定义和使用 323
19.3 游标 327
19.3.1 游标概述 327
19.3.2 FOR游标 332
19.3.3 隐式游标 334
19.3.4 REF游标 336
19.4 本章小结 337
第20章 触发器 338
20.1 触发器的创建 338
20.2 触发器的分类及语法格式 340
20.3 触发器的创建权限 341
20.4 触发器的审核 343
20.5 触发器的删除 346
20.6 触发器定义中的条件语句 347
20.6.1 WHEN条件语句 347
20.6.2 IF条件语句 348
20.7 基于Java语言的触发器 348
20.8 触发器的管理 350
20.8.1 查看触发器 350
20.8.2 重编译触发器 351
20.8.3 屏蔽触发器 352
20.8.4 删除触发器 353
20.9 本章小结 353
第21章 序列号和同义词 354
21.1 序列号 354
21.1.1 创建和使用序列号 354
21.1.2 修改序列号 357
21.1.3 删除序列号 360
21.2 同义词 360
21.2.1 创建公有同义词 361
21.2.2 创建私有同义词 362
21.2.3 删除同义词 363
21.3 本章小结 364
第22章 用户管理和概要文件 365
22.1 用户管理 365
22.1.1 创建用户 365
22.1.2 删除用户 370
22.2 概要文件 371
22.2.1 什么是概要文件 371
22.2.2 使用概要文件管理会话资源 372
22.2.3 创建口令管理的概要文件 373
22.2.4 修改和删除概要文件 377
22.3 本章小结 378
第23章 角色管理 379
23.1 什么是角色 379
23.2 创建角色 381
23.3 修改角色 382
23.4 赋予角色权限 383
23.5 赋予用户角色 384
23.6 默认角色 387
23.7 禁止和激活角色 390
23.8 回收和删除角色 392
23.9 预定义角色 394
23.10 本章小结 396
第24章 系统和对象权限管理 397
24.1 系统权限 397
24.1.1 什么是系统权限 397
24.1.2 授予系统权限 399
24.1.3 回收系统权限 403
24.2 对象权限 406
24.2.1 什么是对象权限 406
24.2.2 回收对象权限 408
24.3 本章小结 409
第25章 EXP/IMP及数据泵的备份与恢复 410
25.1 什么是备份 410
25.2 EXP指令 411
25.2.1 EXP指令详解 411
25.2.2 通过EXP指令导出整个数据库 415
25.2.3 通过EXP指令导出特定的表 417
25.2.4 通过EXP指令导出指定的用户 418
25.2.5 通过EXP指令导出特定的表空间 420
25.3 IMP指令 421
25.3.1 IMP指令详解 421
25.3.2 通过IMP指令恢复整个数据库 423
25.3.3 通过IMP指令恢复特定的表 423
25.3.4 通过IMP指令恢复指定的用户 424
25.4 数据泵 426
25.4.1 数据泵概念详解 426
25.4.2 使用数据泵导出数据 429
25.4.3 使用数据泵导入数据 440
25.4.4 使用数据泵迁移表空间 450
25.5 备份与恢复 453
25.5.1 脱机备份方法 453
25.5.2 从脱机备份中手工恢复 455
25.5.3 联机备份方法 456
25.5.4 从联机备份中手工恢复 459
25.6 本章小结 461
第26章 RMAN备份与恢复数据库 462
26.1 RMAN概述 462
26.1.1 RMAN的特点 462
26.1.2 RMAN的系统结构组成 463
26.1.3 RMAN的快闪恢复区 464
26.1.4 RMAN到数据库的连接 466
26.2 使用RMAN实现备份 467
26.2.1 使用RMAN实现脱机备份 468
26.2.2 使用RMAN实现控制文件备份 470
26.2.3 使用RMAN实现联机备份 471
26.2.4 使用RMAN实现增量备份 475
26.2.5 使用RMAN实现脚本备份 476
26.3 使用RMAN实现恢复 478
26.3.1 使用RMAN实现脱机备份的恢复 478
26.3.2 使用RMAN实现脱机备份的恢复 480
26.3.3 使用RMAN从联机热备份中恢复 481
26.4 RMAN的指令 483
26.4.1 VALIDATE BACKUPSET指令 483
26.4.2 RESTORE…VALIDATE指令 484
26.4.3 RESTORE…PREVIEW指令 485
26.5 本章小结 486
第27章 优化的概述 487
27.1 优化的方法 487
27.2 优化涉及的重要视图 488
27.2.1 v$SYSTEM_EVENT视图 488
27.2.2 v$SESSION_EVENT视图 493
27.2.3 v$SESSION_WAIT视图 495
27.3 优化的流程及相关说明 497
27.4 本章小结 498
第28章 SQL语句以及内存优化 499
28.1 优化SQL语句 499
28.1.1 获得SQL语句的执行计划 500
28.1.2 通过建立索引优化SQL语句 504
28.1.3 通过消除子查询优化SQL语句 510
28.2 优化SGA 513
28.3 将程序常驻内存 518
28.4 将数据常驻内存 523
28.5 优化重做日志缓冲区 528
28.5.1 重做日志缓冲区的工作机制 529
28.5.2 重做日志缓冲区的相关等待事件 530
28.5.3 设置重做日志缓冲区的大小 532
28.6 优化PGA内存 534
28.7 本章小结 537
第29章 I/O以及系统优化 538
29.1 I/O优化 538
29.1.1 表空间的I/O优化 538
29.1.2 数据文件的I/O优化 540
29.1.3 表的I/O优化 543
29.1.4 索引的I/O优化 544
29.1.5 还原段的优化 546
29.2 系统优化 547
29.2.1 在Windows平台实现性能监控 547
29.2.2 在LNIX系统上实现性能监控 548
29.3 本章小结 551