第1章 Oracle数据库概述 1
1.1 数据库概述 2
1.1.1 数据库基本概念 2
1.1.2 数据库系统的特点 3
1.2 关系数据库的基本理论 5
1.2.1 数据库系统与关系数据库 6
1.2.2 关系数据库的逻辑模型 6
1.2.3 关系数据库的设计规范 7
1.3 Oracle数据库与网格技术 10
1.3.1 网格技术 10
1.3.2 Oracle网格体系结构 11
1.4 Oracle应用结构 12
1.4.1 多数据库的独立宿主结构 12
1.4.2 客户机/服务器结构 13
1.4.3 分布式结构 14
1.5 初识Oracle 12c 14
1.5.1 Oracle数据库概述 14
1.5.2 安装Oracle 12c 16
1.5.3 Oracle 12c的新特性 18
1.5.4 Orac1e 12c管理工具 19
第2章 Oracle的体系结构 22
2.1 Oracle核心组件 23
2.1.1 Oracle体系结构概述 23
2.1.2 数据字典 24
2.2 逻辑存储结构 25
2.2.1 数据块 25
2.2.2 盘区 26
2.2.3 段 26
2.2.4 表空间 27
2.3 物理存储结构 29
2.3.1 数据文件 30
2.3.2 控制文件 31
2.3.3 其他文件 32
2.4 实例的内存结构 35
2.4.1 系统全局区 35
2.4.2 程序全局区 38
2.5 实例的进程结构 39
2.5.1 用户进程 40
2.5.2 服务器进程 40
2.5.3 后台进程 40
第3章 实现数据库 46
3.1 设置初始化参数 47
3.1.1 常用的初始化参数 47
3.1.2 初始化参数文件 48
3.1.3 创建初始化参数文件 48
3.1.4 显示和设置初始化参数文件 50
3.2 启动数据库与实例 52
3.2.1 启动数据库的步骤 52
3.2.2 启动模式 53
3.2.3 转换启动模式 55
3.3 关闭数据库与实例 57
3.3.1 数据库的关闭步骤 58
3.3.2 关闭方式 58
3.4 数据库的特殊状态 60
3.4.1 静默状态 60
3.4.2 挂起状态 61
3.5 管理监听器 62
3.5.1 查看监听器状态 62
3.5.2 配置监听器 63
3.5.3 配置本地命名 66
第4章 SQL基础 68
4.1 SQL概述 69
4.1.1 SQL简介 69
4.1.2 编写规则 70
4.2 使用SELECT语句 70
4.2.1 检索单表数据 71
4.2.2 过滤数据 74
4.2.3 排序数据 77
4.2.4 多表检索 78
4.3 使用子查询 83
4.3.1 子查询的概念 83
4.3.2 单行子查询 84
4.3.3 多行子查询 85
4.3.4 关联子查询 86
4.4 操作数据 87
4.4.1 插入数据 87
4.4.2 更新数据 88
4.4.3 删除数据 89
4.5 Oracle中的事务处理 90
4.5.1 事务的基本概念 90
4.5.2 事务控制 91
4.6 练习:查询EMPLOYEES表信息 92
4.7 练习:维护EMPLOYEES表中的数据 93
4.8 新手训练营 94
第5章 SQL函数 97
5.1 字符函数 98
5.1.1 字符函数概述 98
5.1.2 常用的字符串函数 99
5.2 数值函数 102
5.2.1 数值函数概述 102
5.2.2 单值函数 103
5.2.3 聚集和列表函数 106
5.3 日期函数 109
5.3.1 日期函数概述 109
5.3.2 计算日期 109
5.4 转换与分组函数 112
5.4.1 转换函数 112
5.4.2 分组函数 114
5.5 练习:统计分析COMMODITY表 115
5.6 练习:计算与分组表数据 117
5.7 新手训练营 118
第6章 PL/SQL编程 121
6.1 PL/SQL结构 122
6.1.1 PL/SQL概述 122
6.1.2 PL/SQL变量的声明 123
6.1.3 %TYPE变量 125
6.1.4 复合变量 126
6.2 条件语句 128
6.2.1 IF…THEN条件语句 128
6.2.2 IF…THEN…ELSE条件语句 129
6.2.3 IF…THEN…ELSIF条件语句 129
6.2.4 CASE条件语句 130
6.3 循环语句 131
6.3.1 LOOP…END LOOP循环 132
6.3.2 WHILE循环 132
6.3.3 FOR循环 133
6.4 游标的使用 134
6.4.1 隐式游标 135
6.4.2 显式游标 136
6.4.3 游标FOR循环 139
6.5 异常处理 139
6.5.1 预定义的异常处理 140
6.5.2 非预定义异常 142
6.5.3 用户定义的异常 143
6.6 练习:设置类型变量 144
6.7 练习:使用游标 145
6.8 新手训练营 147
第7章 SQL*Plus数据库环境 151
7.1 SQL*Plus的基础命令 152
7.1.1 设置SQL*Plus环境 152
7.1.2 命令行编辑器 153
7.2 SQL*Plus的运行环境 154
7.2.1 使用SET语句选项 154
7.2.2 设置运行环境示例 155
7.3 SQL*Plus命令 159
7.3.1 HELP命令 159
7.3.2 DESCRIBE命令 160
7.3.3 PROMPT命令 160
7.3.4 SPOOL命令 161
7.4 格式化查询和缓存区 161
7.4.1 COLUMN命令 162
7.4.2 TTITLE和BTITLE命令 164
7.4.3 缓存区 165
7.5 练习:使用COLUMN命令格式化显示列 167
7.6 练习:设置报表格式 168
7.7 新手训练营 170
第8章 设置表和表空间 172
8.1 设置表空间 173
8.1.1 创建普通表空间 173
8.1.2 创建大文件表空间 174
8.1.3 创建临时表空间 176
8.1.4 创建非标准块表空间 178
8.2 编辑表空间 178
8.2.1 设置表空间的可用性 179
8.2.2 设置表空间的读写状态 180
8.2.3 编辑表空间 181
8.3 设置表 183
8.3.1 表的数据类型 183
8.3.2 创建表 184
8.3.3 表特性 186
8.4 编辑表 190
8.4.1 操作表字段 191
8.4.2 重命名和删除表 193
8.4.3 设置表的存储表空间和存储参数 195
8.4.4 设置表的状态 196
8.5 练习:设置表空间 196
8.6 练习:创建基本表 198
8.7 新手训练营 199
第9章 管理表和表空间 202
9.1 管理表 203
9.1.1 使用大对象数据类型 203
9.1.2 定义和管理数据完整性约束 204
9.2 管理数据文件 212
9.2.1 数据文件的管理策略 212
9.2.2 添加表空间数据文件 213
9.2.3 改变数据文件大小 213
9.2.4 改变数据文件的可用性 214
9.2.5 改变数据文件的名称和位置 215
9.3 管理UNDO表空间 216
9.3.1 UNDO概述 217
9.3.2 建立UNDO表空间 217
9.3.3 编辑UNDO表空间 218
9.4 练习:为表定义约束 221
9.5 练习:创建销售统计表 222
9.6 新手训练营 224
第10章 存储过程、函数和程序包 226
10.1 存储过程 227
10.1.1 创建存储过程 227
10.1.2 参数 229
10.1.3 默认值 233
10.1.4 过程中的事务处理 234
10.2 函数 236
10.2.1 创建函数 236
10.2.2 调用函数 236
10.3 触发器 237
10.3.1 触发器概述 237
10.3.2 语句级触发器 238
10.3.3 行级触发器 241
10.3.4 INSTEADOF触发器 242
10.3.5 用户事件触发器 244
10.4 程序包 245
10.4.1 程序包规范 246
10.4.2 主体 247
10.4.3 重载 248
10.5 练习:创建过程 250
10.6 练习:创建触发器 251
10.7 新手训练营 253
第11章 索引 255
11.1 索引概述 256
11.1.1 索引基础 256
11.1.2 索引原理 256
11.1.3 索引分类 257
11.2 建立索引 258
11.2.1 建立B树索引 259
11.2.2 建立位图索引 260
11.2.3 建立反向键索引 263
11.2.4 基于函数的索引 265
11.3 修改索引 266
11.3.1 合并索引和重建索引 266
11.3.2 删除索引 267
11.3.3 显示索引信息 267
11.4 索引组织表 269
11.4.1 索引组织表与标准表 269
11.4.2 修改索引组织表 270
11.5 练习:索引的应用 271
11.6 练习:创建SCORE表 272
11.7 新手训练营 274
第12章 其他模式对象 276
12.1 管理表分区与索引分区 277
12.1.1 分区的概念 277
12.1.2 建立分区表 278
12.1.3 修改分区表 283
12.1.4 分区索引和全局索引 287
12.2 外部表和临时表 289
12.2.1 建立外部表 289
12.2.2 处理外部表错误 291
12.2.3 修改外部表 292
12.2.4 临时表 293
12.3 簇与簇表 293
12.3.1 索引簇 293
12.3.2 散列簇 296
12.3.3 显示簇信息 299
12.4 练习:应用外部表 300
12.5 练习:应用簇表 301
12.6 新手训练营 302
第13章 管理控制与日志文件 305
13.1 管理控制文件 306
13.1.1 控制文件简介 306
13.1.2 复合控制文件 307
13.1.3 建立控制文件 309
13.1.4 控制文件的备份与恢复 311
13.1.5 查看与删除控制文件 312
13.2 管理重做日志文件 313
13.2.1 重做日志简介 313
13.2.2 增加重做日志 314
13.2.3 删除重做日志 316
13.2.4 设置重做日志位置或名称 317
13.2.5 显示重做日志信息 318
13.3 管理归档日志 319
13.3.1 日志操作模式 319
13.3.2 控制归档 320
13.3.3 配置归档文件格式 321
13.3.4 配置归档位置 322
13.3.5 显示归档日志信息 324
13.4 查看日志信息 325
13.4.1 LogMiner概述 325
13.4.2 创建LogMiner使用的字典文件 326
13.4.3 分析日志文件 327
13.5 练习:备份控制文件 329
13.6 练习:控制归档 329
13.7 新手训练营 330
第14章 视图、同义词和序列 332
14.1 使用视图 333
14.1.1 创建视图 333
14.1.2 管理视图 336
14.2 使用序列 337
14.2.1 创建序列 337
14.2.2 编辑序列 339
14.3 使用同义词 341
14.3.1 创建同义词 341
14.3.2 编辑同义词 342
14.4 使用物化视图 343
14.4.1 创建物化视图 343
14.4.2 物化视图中的高级功能 346
14.4.3 管理物化视图组 348
14.5 应用对象视图 349
14.5.1 应用对象类型 349
14.5.2 应用对象视图 350
14.5.3 应用方法 351
14.6 练习:创建视图 352
14.7 练习:创建物化视图 353
14.8 新手训练营 355
第15章 数据库安全管理 357
15.1 管理用户 358
15.1.1 创建用户 358
15.1.2 编辑用户 360
15.2 资源配置PROFILE 362
15.2.1 使用PROFILE管理资源 362
15.2.2 使用PROFILE管理密码 364
15.2.3 编辑PROFILE 367
15.3 管理权限 368
15.3.1 管理系统权限 369
15.3.2 管理对象权限 374
15.4 管理角色 377
15.4.1 角色的概念 377
15.4.2 预定义角色 378
15.4.3 自定义角色 380
15.5 练习:创建用户账号 383
15.6 练习:管理用户角色 385
15.7 新手训练营 385
第16章 导入与导出 388
16.1 EXPDP导出数据 389
16.1.1 EXPDP和IMPDP简介 389
16.1.2 调用EXPDP 389
16.1.3 EXPDP命令参数 392
16.2 IMPDP导入数据 395
16.2.1 IMPDP参数 395
16.2.2 调用IMPDP 397
16.2.3 移动表空间 398
16.3 SQL*Loader导入外部数据 401
16.3.1 SQL*Loader概述 401
16.3.2 加载数据 402
16.4 练习:调用EXP和IMP备份数据库 404
16.5 练习:调用SQL*Loader导入外部数据 404
16.6 新手训练营 405
第17章 备份与恢复 408
17.1 RMAN概述 409
17.1.1 备份与恢复概述 409
17.1.2 RMAN组件 410
17.1.3 RMAN通道 413
17.1.4 RMAN命令 417
17.2 使用RMAN备份数据库 418
17.2.1 RMAN备份策略 418
17.2.2 使用RMAN备份数据库文件和归档日志 421
17.2.3 多重备份 424
17.2.4 BACKUP增量备份 424
17.2.5 镜像复制 425
17.3 RMAN完全恢复 426
17.3.1 RMAN恢复机制 426
17.3.2 恢复NOARCHIVELOG模式的数据库 427
17.3.3 恢复ARCHIVELOG模式的数据库 429
17.4 RMAN不完全恢复 430
17.4.1 基于时间的不完全恢复 430
17.4.2 基于撤销的不完全恢复 431
17.4.3 基于更改的不完全恢复 432
17.5 维护RMAN 434
17.5.1 交叉验证备份CROSESSCHECK 434
17.5.2 查看备份信息 434
17.5.3 定义保留备份的策略 436
17.6 练习:RMAN备份数据库 437
17.7 练习:RMAN恢复数据库 438
17.8 新手训练营 438
第18章 数据库的高级应用 440
18.1 可插拔数据库 441
18.1.1 可插拔数据库概述 441
18.1.2 创建CDB和PDB 443
18.1.3 使用根容器 447
18.1.4 创建公用用户和角色 448
18.1.5 切换容器 450
18.1.6 管理可插拔数据库 451
18.2 自动化作业 452
18.2.1 创建自动化作业 452
18.2.2 管理自动化作业 453
18.3 闪回查询 454
18.3.1 基于时间闪回 454
18.3.2 基于SCN闪回 456
18.3.3 查看每行的SCN 457
18.4 本地动态SQL和DBMS_SQL 458
18.4.1 使用本地动态SQL 458
18.4.2 使用DBMS_SQL 460
18.5 嵌套表和可变数组 461
18.5.1 可变数组 461
18.5.2 嵌套表 463
18.6 练习:创建可变数组 466
18.7 练习:创建嵌套表 467
18.8 新手训练营 469