标题：Oracle完全学习手册
图书信息
  书 名: Oracle完全学习手册
作　者：郭郑州
出版社： 清华大学出版社
出版时间： 2011年1月1日
ISBN: 9787302224983
开本： 16开
定价: 79.50元
内容简介
《Oracle完全学习手册》作为世界范围内性能最优异的数据库系统之一，它在国内数据库市场的占有率远远超过其对手，始终处于数据库领域的领先地位。《Oracle完全学习手册》以Oracle 11g for Windows XP为平台，由浅入深地介绍Oracle Database 11g系统的使用方法和基本管理。主要包括：关系数据库设计、Oracle数据库的基本体系结构、存储管理、管理控制文件和日志文件、SQL语言基础、使用SQL*Plus、PL/SQL程序设计、存储过程、触发器和程序包、表、模式对象管理、安全管理以及基本的备份与恢复等，最后以4个应用实例分别结合Java Swing、JSP、ASP NET和PHP技术来讲述Oracle的实际应用。
《Oracle完全学习手册》适合大专院校在校学生、网站开发人员、Java学习和开发人员以及编程爱好者学习和参考。
图书目录
第一篇 Oracle基础篇
第1章 Oracle关系数据库 1
1.1 关系数据模型 1
1.1.1 二维表 1
1.1.2 关系术语 2
1.1.3 关系数据模型的特点 3
1.2 关系数据库 4
1.2.1 关系操作 4
1.2.2 关系的完整性 4
1.3 关系数据库规范化理论 6
1.3.1 函数依赖 6
1.3.2 范式理论 7
1.4 数据库设计 8
1.4.1 实体-关系模型 9
1.4.2 E-R图的绘制 9
1.4.3 将E-R数据模型转化为关系模式 10
1.5 Oracle应用系统结构 11
1.5.1 单磁盘独立主机结构 11
1.5.2 多磁盘独立主机结构 11
1.5.3 多数据库独立主机结构 12
1.5.4 Oracle客户/服务器系统结构 12
1.5.5 Oracle浏览器/服务器系统结构 13
1.5.6 Oracle分布式数据库系统结构 14
1.6 安装Oracle 11g 15
1.6.1 在Windows环境下的安装过程 15
1.6.2 查看Oracle系统 21
1.7 创建数据库 21
1.8 Oracle默认用户 26
1.9 使用OEM 27
第2章 Oracle体系结构概述 31
2.1 物理存储结构 31
2.1.1 数据文件 31
2.1.2 控制文件 33
2.1.3 重做日志文件 34
2.1.4 其他文件 35
2.2 逻辑存储结构 35
2.2.1 表空间 36
2.2.2 段 36
2.2.3 区 37
2.2.4 块 37
2.3 Oracle进程结构 38
2.3.1 进程结构概述 39
2.3.2 DBWn进程 39
2.3.3 LGWR进程 41
2.3.4 CKPT进程 41
2.3.5 SMON进程 42
2.3.6 PMON进程 42
2.3.7 ARCn进程 42
2.3.8 RECO进程 43
2.3.9 LCKn进程 43
2.3.10 Dnnn进程 43
2.3.11 SNPn进程 44
2.4 Oracle内存结构 44
2.4.1 内存结构概述 44
2.4.2 系统全局区 45
2.4.3 程序全局区 46
2.4.4 排序区 46
2.4.5 大池 47
2.4.6 Java池 47
2.5 数据字典 47
2.5.1 Oracle数据字典介绍 47
2.5.2 Oracle常用数据字典 48
第3章 使用SQL*Plus 51
3.1 SQL*Plus的主要功能 51
3.2 SQL*Plus连接数据库 51
3.2.1 启动SQL*Plus 51
3.2.2 从命令行启动SQL*Plus 53
3.2.3 断开数据库连接 54
3.3 查看表结构 54
3.4 编辑SQL语句 55
3.5 保存、检索并运行文件 56
3.6 使用SQL*Plus格式化查询结果 58
3.6.1 格式化列 58
3.6.2 设置页面大小 59
3.6.3 设置行大小 60
3.6.4 清除列格式 60
3.7 使用变量 61
3.7.1 临时变量 61
3.7.2 已定义变量 63
3.8 创建简单报表 65
3.8.1 在脚本中使用临时变量 65
3.8.2 在脚本中使用已定义变量 66
3.8.3 向脚本中的变量传递值 66
3.8.4 添加页眉和页脚 67
3.8.5 计算小计 68
第4章 表空间 70
4.1 管理基本表空间 70
4.1.1 表空间管理类型 70
4.1.2 创建基本表空间 72
4.1.3 修改表空间 79
4.2 临时表空间 85
4.2.1 创建临时表空间 85
4.2.2 修改临时表空间 86
4.2.3 临时表空间组 87
4.3 大文件表空间 88
4.4 非标准数据块表空间 90
4.5 撤销表空间 91
4.5.1 管理撤销表空间的方式 91
4.5.2 创建和管理撤销表空间 92
第5章 管理控制文件与日志文件 97
5.1 管理控制文件 97
5.1.1 控制文件的概述 97
5.1.2 创建控制文件 98
5.1.3 管理与维护控制文件 101
5.1.4 查询控制文件信息 104
5.2 管理日志文件 105
5.2.1 日志文件的概述 105
5.2.2 创建日志文件组及其成员 106
5.2.3 管理日志文件组及其成员 107
5.2.4 查看日志文件信息 110
5.3 管理归档日志 111
5.3.1 归档日志的概述 111
5.3.2 设置数据库模式 112
5.3.3 设置归档目标 113
5.3.4 设置归档进程的跟踪级别 114
5.3.5 查看归档日志信息 115
第6章 表 117
6.1 创建表 117
6.1.1 创建表的策略 117
6.1.2 使用SQL语句创建表 118
6.1.3 指定表空间 123
6.1.4 指定存储参数 124
6.1.5 设置数据块管理参数 125
6.1.6 指定重做日志 127
6.1.7 指定缓存 128
6.1.8 通过OEM创建表 129
6.2 修改表 131
6.2.1 增加和删除列 131
6.2.2 更新列 133
6.2.3 重命名表 135
6.2.4 改变表的存储表空间和存储
参数 136
6.2.5 删除表定义 137
6.3 完整性约束 137
6.3.1 约束的分类和定义 138
6.3.2 NOT NULL约束 138
6.3.3 PRIMARY KEY约束 140
6.3.4 UNIQUE约束 142
6.3.5 CHECK约束 143
6.3.6 FOREIGN KEY约束 144
6.3.7 禁止和激活约束 147
6.3.8 验证约束 149
6.3.9 延迟约束 150
6.3.10 查询约束信息 151
6.4 分析表 152
第二篇 操作Oracle篇
第7章 SQL基础 157
7.1 SQL语言概述 157
7.1.1 SQL语言特点 157
7.1.2 SQL语言分类 158
7.1.3 SQL语句的编写规则 158
7.2 使用SELECT检索数据 159
7.2.1 使用FROM子句指定表 159
7.2.2 使用SELECT（必要元素）
指定列 160
7.2.3 使用WHERE子句指定行 160
7.2.4 使用ORDER BY子句
对行进行排序 164
7.2.5 使用GROUP BY子句
对行进行分组 166
7.2.6 使用HAVING子句过滤行组 167
7.2.7 组合使用WHERE、GROUP BY和HAVING子句 167
7.2.8 使用DISTINCT来检索
唯一的表列值 167
7.2.9 使用算术运算符 168
7.3 使用DML语句 169
7.3.1 使用INSERT语句插入表数据 169
7.3.2 使用UPDATE语句更新表数据 170
7.3.3 使用DELETE语句删除表数据 170
7.3.4 使用MERGE语句修改表数据 171
7.4 表的连接查询 173
7.4.1 简单连接 173
7.4.2 内连接 174
7.4.3 外连接 175
7.4.4 自连接 176
7.5 数据库事务 177
7.5.1 事务的提交和回滚 177
7.5.2 事务的开始与结束 178
7.5.3 设置保存点 179
7.5.4 事务的ACID特性 180
7.5.5 并发事务 180
7.5.6 事务锁 182
7.5.7 事务隔离级别 183
第8章 使用简单函数 185
8.1 使用单行函数 185
8.1.1 字符函数 185
8.1.2 数字函数 188
8.1.3 转换函数 190
8.1.4 正则表达式函数 192
8.2 使用聚合函数 195
8.3 日期时间处理函数 197
8.3.1 使用TO_CHAR()和TO_DATE()
转换时间值 198
8.3.2 使用时间值函数 199
第9章 子查询 202
9.1 子查询的类型 202
9.2 编写单行子查询 202
9.2.1 在WHERE子句中使用子查询 203
9.2.2 使用其他单行操作符 203
9.2.3 在HAVING子句中使用子查询 204
9.2.4 在FROM子句中使用子查询 205
9.2.5 常见查询错误 206
9.3 编写多行子查询 207
9.4 编写多列子查询 209
9.5 编写关联子查询 210
9.5.1 使用关联子查询 210
9.5.2 在关联子查询中使用EXISTS
和NOT EXISTS 211
9.6 编写嵌套子查询 212
9.7 编写包含子查询的UPDATE
和DELETE语句 213
第10章 高级查询 215
10.1 使用集合操作符 215
10.2 使用TRANSLATE()函数 218
10.3 使用DECODE()函数 219
10.4 使用CASE表达式 220
10.4.1 使用简单CASE表达式 220
10.4.2 使用搜索CASE表达式 221
10.5 层次化查询 222
10.5.1 示例数据 222
10.5.2 使用CONNECT BY和START WITH子句 223
10.5.3 使用伪列LEVEL 224
10.5.4 格式化层次化查询的结果 225
10.5.5 从非根节点开始遍历 226
10.5.6 在START WITH子句
中使用子查询 226
10.5.7 从下向上遍历树 227
10.5.8 从层次化查询中删除节点
和分支 227
10.5.9 在层次化查询中加入其他条件 228
10.6 使用扩展的GROUP BY子句 229
10.6.1 使用ROLLUP子句 229
10.6.2 使用CUBE子句 230
10.6.3 使用GROUPING()函数 231
10.6.4 使用GROUPING SETS子句 233
10.6.5 使用GROUPING_ID()函数 233
10.6.6 使用GROUP_ID()函数 236
第11章 PL/SQL基础 238
11.1 PL/SQL概述 238
11.1.1 PL/SQL语言特点 238
11.1.2 PL/SQL代码编写规则 238
11.2 PL/SQL结构 239
11.2.1 PL/SQL程序块 239
11.2.2 变量和类型 240
11.2.3 运算符与表达式 242
11.2.4 PL/SQL的注释 242
11.3 编写控制结构 243
11.3.1 条件分支语句 243
11.3.2 循环语句 245
11.3.3 GOTO和NULL 248
11.4 复合变量 249
11.4.1 %TYPE变量 249
11.4.2 %ROWTYPE变量 250
11.4.3 PL/SQL记录 251
11.5 PL/SQL集合 252
11.5.1 索引表 252
11.5.2 嵌套表 254
11.5.3 变长数组 256
11.5.4 PL/SQL记录表 258
11.5.5 集合方法 259
11.6 游标 262
11.6.1 游标基本操作 263
11.6.2 游标属性 264
11.6.3 参数化游标和隐式游标 266
11.6.4 使用游标更新或删除数据 267
11.6.5 游标FOR循环 268
11.6.6 使用游标变量 269
11.7 异常处理 271
11.7.1 预定义异常 271
11.7.2 用户自定义异常 274
11.7.3 异常函数 275
第12章 PL/SQL高级应用 277
12.1 存储过程 277
12.1.1 过程的基本操作 277
12.1.2 过程的参数传递 279
12.1.3 过程的参数模式 280
12.1.4 参数的默认值 282
12.2 函数 283
12.2.1 函数的基本操作 283
12.2.2 建立带参函数 285
12.3 程序包 287
12.3.1 包的基本操作 288
12.3.2 系统预定义包 289
12.3.3 私有过程和函数 290
12.3.4 使用包重载 291
12.3.5 使用包构造过程 293
12.4 触发器 296
12.4.1 触发器的类型 296
12.4.2 触发器的基本操作 297
12.4.3 语句触发器 298
12.4.4 触发器的新值和旧值 300
12.4.5 行触发器 301
12.4.6 INSTEAD OF触发器 304
12.4.7 系统事件触发器 305
第三篇 Oracle进阶篇
第13章 用户权限与安全 309
13.1 管理用户 309
13.1.1 创建用户 309
13.1.2 修改用户 312
13.1.3 删除用户 314
13.1.4 查看用户会话信息 314
13.2 用户配置文件 316
13.2.1 资源限制参数 316
13.2.2 口令限制参数 317
13.2.3 创建用户配置文件 318
13.2.4 管理配置文件 320
13.2.5 通过OEM管理配置文件 321
13.3 权限 323
13.3.1 权限的概述 323
13.3.2 系统权限 325
13.3.3 对象权限 328
13.3.4 查看权限信息 331
13.4 角色 333
13.4.1 角色的概述 333
13.4.2 系统预定义角色 333
13.4.3 创建角色 335
13.4.4 修改用户的默认角色 336
13.4.5 禁用和启用角色 337
13.4.6 修改角色 338
13.4.7 删除角色 338
13.4.8 查看角色信息 339
13.4.9 通过OEM管理角色 340
第14章 数据库审计 343
14.1 审计概述 343
14.1.1 审计及其作用 343
14.1.2 审计类型 344
14.1.3 启动数据库审计 345
14.2 语句审计 346
14.2.1 语句审计概述 346
14.2.2 使用语句审计 348
14.3 权限审计 349
14.4 对象审计 350
14.4.1 对象审计概述 350
14.4.2 使用对象审计 351
14.5 审计信息查询 353
14.6 细粒度的审计 355
第15章 其他模式对象 358
15.1 索引 358
15.1.1 索引类型 358
15.1.2 指定索引选项 361
15.1.3 创建B树索引 363
15.1.4 创建位图索引 364
15.1.5 创建反向键索引 364
15.1.6 创建基于函数的索引 365
15.1.7 管理索引 365
15.2 索引组织表 368
15.2.1 索引组织表与标准表 368
15.2.2 溢出存储 369
15.3 临时表 370
15.3.1 临时表的特点 370
15.3.2 临时表的类别 371
15.3.3 创建与使用临时表 371
15.4 外部表 373
15.4.1 创建外部表 373
15.4.2 处理外部表错误 375
15.5 分区表与分区索引 379
15.5.1 分区概述 379
15.5.2 创建分区表 380
15.5.3 建立分区表索引 384
15.5.4 管理分区表 386
15.6 簇与簇表 389
15.6.1 创建簇和簇表 389
15.6.2 创建簇索引 391
15.6.3 管理簇 391
15.7 视图 393
15.7.1 创建视图 393
15.7.2 可更新的视图 396
15.7.3 删除视图 399
15.8 序列 399
15.8.1 创建序列 399
15.8.2 修改序列 402
15.8.3 删除序列 402
15.9 同义词 403
第16章 数据库对象类型 404
16.1 对象类型简介 404
16.2 创建对象类型 404
16.2.1 创建简单对象类型 405
16.2.2 创建带有函数的对象类型 406
16.3 获取对象类型信息 408
16.4 在数据库表中使用对象类型 409
16.4.1 列对象 409
16.4.2 对象表 411
16.4.3 对象标识符和对象引用 414
16.4.4 比较对象值 417
16.5 在PL/SQL中使用对象类型 419
第17章 大对象 424
17.1 大对象（LOB）简介 424
17.2 包含大对象的表 425
17.2.1 包含CLOB数据列的表 425
17.2.2 包含BLOB数据列的表 426
17.2.3 包含BFILE数据列的表 427
17.3 在PL/SQL中使用大对象 429
17.3.1 APPEND() 429
17.3.2 CLOSE() 431
17.3.3 COMPARE() 432
17.3.4 COPY() 433
17.3.5 CREATETEMPORARY() 434
17.3.6 ERASE() 435
17.3.7 FILECLOSEALL() 436
17.3.8 FILEEXISTS() 436
17.3.9 FILEGETNAME() 437
17.3.10 FREETEMPORARY() 438
17.3.11 GETCHUNKSIZE() 439
17.3.12 GET_STORAGE_LIMIT() 439
17.3.13 GETLENGTH() 439
17.3.14 INSTR() 440
17.3.15 ISOPEN() 441
17.3.16 ISTEMPORARY() 441
17.3.17 LOADBLOBFROMFILE() 442
17.3.18 LOADCLOBFROMFILE() 442
17.3.19 OPEN() 444
17.3.20 READ() 445
17.3.21 SUBSTR() 446
17.3.22 TRIM() 447
17.3.23 WRITE() 447
17.3.24 WRITEAPPEND() 448
17.4 LONG和LONG RAW类型 448
17.4.1 包含LONG或LONG RAW
数据列的表 448
17.4.2 将LONG和LONG RAW数据列转
换为LOB 449
第18章 Oracle SQL语句优化 451
18.1 一般的SQL优化技巧 451
18.1.1 避免使用“*”替代所有列 451
18.1.2 用TRUNCATE代替DELETE 452
18.1.3 在确保完整性的情况下多用
COMMIT语句 453
18.1.4 减少表的查询次数 453
18.1.5 用EXISTS替代IN 453
18.1.6 用WHERE替代HAVING 454
18.1.7 使用“<=”替代“<" 455
18.2 表的连接 456
18.2.1 选择FROM表的顺序 456
18.2.2 WHERE子句的连接顺序 456
18.2.3 使用表的别名 457
18.3 有效使用索引 458
18.3.1 使用索引的基本事项 458
18.3.2 避免对索引列使用NOT
关键字 458
18.3.3 避免对唯一索引列使用
IS (NOT) NULL 459
18.3.4 选择复合索引主列 459
18.3.5 监视索引是否被使用 460
第四篇 备份与恢复篇
第19章 用户管理的备份与恢复 461
19.1 数据库备份与恢复 461
19.1.1 数据库备份 461
19.1.2 数据库恢复 464
19.2 用户管理的备份 465
19.2.1 备份命令 466
19.2.2 完全数据库脱机备份 466
19.2.3 部分数据库脱机备份 468
19.2.4 部分数据库联机备份 469
19.2.5 备份控制文件 471
19.2.6 验证备份数据 472
19.3 用户管理的完全恢复 473
19.3.1 用户管理的完全恢复机制 473
19.3.2 非归档模式下的数据库恢复 475
19.3.3 归档模式下的数据文件恢复 477
19.3.4 在MOUNT状态下对
SYSTEM表空间恢复 478
19.3.5 在OPEN状态下对数据文件
进行恢复 480
19.3.6 在OPEN状态中恢复未备份的
数据文件 482
19.3.7 恢复控制文件 483
19.4 用户管理的不完全恢复 486
19.4.1 不完全恢复机制 486
19.4.2 基于时间的恢复 488
19.4.3 基于更改的恢复 492
19.4.4 基于撤销的恢复 496
第20章 使用RMAN工具 499
20.1 RMAN简介 499
20.1.1 RMAN的特点 499
20.1.2 RMAN组件 500
20.1.3 保存RMAN资料档案库 503
20.1.4 配置RMAN 504
20.1.5 RMAN的基本操作 509
20.2 RMAN备份 512
20.2.1 RMAN备份类型 512
20.2.2 BACKUP命令 514
20.2.3 增量备份 516
20.2.4 备份数据库 517
20.2.5 多重备份 521
20.2.6 镜像复制 522
20.3 RMAN恢复 523
20.3.1 RMAN恢复机制 524
20.3.2 数据库非归档恢复 525
20.3.3 数据库归档恢复 527
20.3.4 块介质恢复 528
20.3.5 移动数据文件到新的位置 529
20.3.6 基于时间的不完全恢复 530
20.3.7 基于撤销的不完全恢复 531
20.3.8 基于更改的不完全恢复 532
20.4 其他操作 533
20.4.1 数据字典 533
20.4.2 LIST命令 534
20.4.3 SHOW命令 536
20.4.4 REPORT命令 536
第21章 数据加载与传输 538
21.1 Data Pump工具 538
21.1.1 Data Pump工具的特点 538
21.1.2 与数据泵相关的数据字典视图 539
21.1.3 使用Data Pump工具前的准备 539
21.2 Data Pump Export工具 540
21.2.1 Data Pump Export选项 540
21.2.2 使用Data Pump Export 543
21.3 Data Pump Import工具 547
21.3.1 Data Pump Import选项 547
21.3.2 使用Data Pump Import 550
21.4 表空间的传输 553
21.5 SQL*Loader 556
21.5.1 SQL*Loader概述 556
21.5.2 数据加载实例 557
第22章 Oracle闪回技术 561
22.1 闪回技术概述 561
22.2 闪回表（Flashback Table） 562
22.2.1 闪回表概述 562
22.2.2 使用闪回表 563
22.3 闪回删除（Flashback Drop） 565
22.3.1 回收站概述 565
22.3.2 使用闪回删除 567
22.3.3 管理回收站 568
22.4 闪回版本查询（Flashback 
Version Query） 571
22.4.1 闪回版本查询概述 571
22.4.2 使用闪回版本查询 572
22.5 闪回事务查询（Flashback Transaction Query） 573
22.5.1 闪回事务查询概述 574
22.5.2 使用闪回事务查询 575
22.6 闪回数据库（Flashback Database） 576
22.6.1 闪回数据库概述 576
22.6.2 使用闪回数据库 579
22.7 闪回数据归档（Flashback Data 
Archive） 581
22.7.1 闪回数据归档概述 581
22.7.2 创建与管理闪回数据归档区 582
22.7.3 使用闪回数据归档 583
22.7.4 清除闪回数据归档区数据 587
第五篇 综合应用篇
第23章 酒店管理系统 589
23.1 系统分析与设计 589
23.1.1 需求分析 589
23.1.2 系统功能设计 590
23.2 数据库设计 590
23.2.1 创建数据表 590
23.2.2 视图设计 594
23.2.3 主键自增设计 595
23.3 公共模块设计 595
23.3.1 编写数据库连接类 595
23.3.2 封装常用的操作数据库的方法 597
23.3.3 DAO公共类 599
23.4 系统登录模块设计 600
23.4.1 设计登录窗体 601
23.4.2 用户名下拉菜单的实现 602
23.4.3 【登录】按钮的事件处理 602
23.5 用户管理模块设计 604
23.5.1 添加用户 604
23.5.2 删除用户 606
23.5.3 修改密码 607
23.6 收银结账模块设计 609
23.6.1 开单功能实现 609
23.6.2 签单功能实现 611
23.6.3 结账功能实现 612
第24章 个人论坛 615
24.1 系统分析与设计 615
24.1.1 需求分析 615
24.1.2 系统设计 615
24.2 数据库设计 616
24.2.1 用户表 616
24.2.2 版块表 617
24.2.3 帖子表 617
24.2.4 回复表 618
24.3 数据模型公共类 619
24.3.1 用户类 619
24.3.2 帖子和回复父类 619
24.3.3 帖子类 620
24.4 Dao实现 621
24.4.1 连接数据库 621
24.4.2 UserDao实现 623
24.4.3 BoardDao实现 625
24.4.4 ReplyDao实现 627
24.5 Web层实现 631
24.5.1 登录 631
24.5.2 主界面 633
24.5.3 帖子列表 635
24.5.4 回复帖子 637
24.5.5 修改回复 639
24.5.6 删除回复 640
第25章 日志管理模块 642
25.1 准备工作 642
25.1.1 安装Oracle客户端 642
25.1.2 配置客户端实例 646
25.1.3 使用Oracle Net Manager
查看配置 650
25.1.4 使用工具测试连接 653
25.1.5 使用.NET程序测试连接 655
25.1.6 使用图形界面测试 658
25.2 数据库设计 660
25.2.1 创建表 660
25.2.2 创建主键和触发器 661
25.3 通用模块 662
25.3.1 编写数据库类 662
25.3.2 制作模板 664
25.4 实现首页 667
25.4.1 制作页面布局 667
25.4.2 编写实现代码 670
25.4.3 显示日志分类 673
25.4.4 显示最新日志 675
25.5 日志分类管理 676
25.5.1 查看分类 676
25.5.2 修改分类 678
25.5.3 删除分类 680
25.5.4 添加分类 680
25.6 日志管理 681
25.6.1 查看日志列表 681
25.6.2 查看日志正文 682
25.6.3 管理日志列表 684
25.6.4 添加日志 685
25.6.5 修改日志 688
第26章 留言本 690
26.1 准备工作 690
26.1.1 创建Net服务名 690
26.1.2 安装扩展 692
26.1.3 测试连接 693
26.2 数据库设计 695
26.3 功能实现 695
26.3.1 显示留言 695
26.3.2 发表留言 698
26.3.3 回复留言 701
26.3.4 删除留言 703