第1章 Oracle 11g简介 1
1.1 关系数据库的基本理论 1
1.1.1 数据库系统与关系数据库 1
1.1.2 关系数据库的逻辑模型 2
1.1.3 关系数据库的设计规范 3
1.2 Oracle数据库与网格技术 6
1.2.1 网格技术 6
1.2.2 Oracle网格体系结构 7
1.3 Oracle应用结构 8
1.3.1 多数据库的独立宿主结构 8
1.3.2 客户机/服务器结构 9
1.3.3 分布式结构 9
1.4 Oracle 11g for Windows的
安装与配置 10
1.5 Oracle 11g的管理工具 16
1.5.1 使用SQL*Plus 16
1.5.2 使用Oracle Enterprise
Manager 17
1.5.3 使用DBCA创建数据库 18
第2章 Oracle的体系结构 19
2.1 Oracle体系结构概述 19
2.2 逻辑存储结构 20
2.2.1 数据块 21
2.2.2 盘区 22
2.2.3 段 22
2.2.4 表空间 23
2.3 物理存储结构 25
2.3.1 数据文件 25
2.3.2 控制文件 26
2.3.3 其他文件 27
2.4 实例的内存结构 30
2.4.1 系统全局区 30
2.4.2 程序全局区 33
2.5 实例的进程结构 35
2.5.1 用户进程 35
2.5.2 服务器进程 36
2.5.3 后台进程 36
2.6 数据字典 41
2.7 思考与练习 42
第3章 管理Oracle数据库 44
3.1 管理初始化参数 44
3.1.1 常用初始化参数 44
3.1.2 初始化参数文件 45
3.1.3 创建初始化参数文件 46
3.1.4 显示和设置初始化
参数文件 47
3.2 启动数据库与实例 50
3.2.1 启动数据库的步骤 50
3.2.2 启动模式 51
3.2.3 转换启动模式 53
3.3 关闭数据库与实例 55
3.3.1 数据库的关闭步骤 55
3.3.2 正常关闭方式
(NORMAL) 56
3.3.3 立即关闭方式
(IMMEDIATE) 56
3.3.4 事务关闭方式
(TRANSACTIONAL) 57
3.3.5 终止关闭方式
(ABORT) 57
3.4 数据库的特殊状态 58
3.4.1 静默状态 58
3.4.2 挂起状态 59
3.5 思考与练习 60
第4章 SQL*Plus命令 62
4.1 SQL*Plus的运行环境 62
4.1.1 使用SET语句选项 62
4.1.2 设置运行环境示例 64
4.2 SQL*Plus命令 67
4.2.1 HELP命令 67
4.2.2 DESCRIBE命令 68
4.2.3 PROMPT命令 69
4.2.4 SPOOL命令 69
4.3 格式化查询结果 70
4.3.1 COLUMN命令 70
4.3.2 TTITLE和BTITLE命令 73
4.4 缓存区 74
4.5 实验指导 76
4.6 思考与练习 77
第5章 SQL语句基础 78
5.1 用户模式 78
5.1.1 SCOTT模式 78
5.1.2 HR模式 79
5.1.3 其他模式 80
5.2 SELECT语句的用法 81
5.2.1 检索单表数据 81
5.2.2 过滤数据 84
5.2.3 排序数据 87
5.2.4 多表检索 89
5.3 函数的使用 94
5.3.1 字符函数 94
5.3.2 数学函数 97
5.3.3 时间和日期函数 98
5.3.4 转换函数 99
5.3.5 统计函数 101
5.3.6 分组技术 101
5.4 子查询 103
5.4.1 子查询的概念 103
5.4.2 单行子查询 104
5.4.3 多行子查询 105
5.4.4 关联子查询 106
5.5 操作数据 107
5.5.1 插入数据 107
5.5.2 更新数据 109
5.5.3 删除数据 109
5.6 Oracle事务处理 110
5.6.1 事务的基本概念 110
5.6.2 事务控制 111
5.7 实验指导 113
5.8 思考与练习 114
第6章 PL/SQL编程基础 116
6.1 PL/SQL概述 116
6.2 变量与数据类型 118
6.2.1 PL/SQL变量的声明 118
6.2.2 %TYPE变量 119
6.2.3 复合变量 120
6.3 条件语句 122
6.3.1 IF…THEN条件语句 122
6.3.2 IF…THEN…ELSE
条件语句 123
6.3.3 IF…THEN…ELSIF
条件语句 124
6.3.4 CASE条件语句 125
6.4 循环语句 126
6.4.1 LOOP…END LOOP循环 126
6.4.2 WHILE循环 127
6.4.3 FOR循环 128
6.5 游标的使用 130
6.5.1 隐式游标 130
6.5.2 显式游标 132
6.5.3 游标FOR循环 134
6.6 异常处理 135
6.6.1 预定义异常 135
6.6.2 非预定义异常 138
6.6.3 用户定义的异常 139
6.7 实验指导 140
6.8 思考与练习 143
第7章 存储过程、触发器
和程序包 145
7.1 存储过程 145
7.1.1 创建存储过程 145
7.1.2 参数 148
7.1.3 默认值 153
7.1.4 过程中的事务处理 154
7.2 函数 155
7.3 触发器 156
7.3.1 触发器概述 157
7.3.2 语句级触发器 158
7.3.3 行级触发器 161
7.3.4 instead of 触发器 162
7.3.5 用户事件触发器 164
7.4 程序包 166
7.4.1 程序包规范 166
7.4.2 程序包主体 167
7.4.3 重载 169
7.5 实验指导 171
7.6 思考与练习 173
第8章 管理表 176
8.1 创建表 176
8.1.1 表结构 176
8.1.2 创建表 178
8.1.3 表特性 179
8.2 修改表 184
8.2.1 增加和删除字段 184
8.2.2 更新字段 186
8.2.3 重命名表 186
8.2.4 改变表的存储表空间
和存储参数 187
8.2.5 删除表定义 188
8.2.6 修改表的状态 189
8.3 定义和管理数据完整性约束 190
8.3.1 非空约束 191
8.3.2 主键约束 192
8.3.3 唯一性约束 193
8.3.4 外键约束 194
8.3.5 禁止和激活约束 197
8.3.6 删除约束 198
8.4 使用大对象数据类型 199
8.5 实验指导 201
8.6 思考与练习 202
第9章 索引与索引组织表 204
9.1 索引基础 204
9.2 建立索引 207
9.2.1 建立B树索引 207
9.2.2 建立位图索引 209
9.2.3 建立反向键索引 212
9.2.4 基于函数的索引 214
9.3 修改索引 215
9.3.1 合并索引和重建索引 215
9.3.2 删除索引 216
9.3.3 显示索引信息 217
9.4 索引组织表 218
9.4.1 索引组织表与标准表 219
9.4.2 修改索引组织表 220
9.5 实验指导 221
9.6 思考与练习 222
第10章 其他模式对象 224
10.1 管理表分区与索引分区 224
10.1.1 分区的概念 224
10.1.2 建立分区表 225
10.1.3 修改分区表 231
10.1.4 分区索引和全局索引 236
10.2 外部表 238
10.2.1 建立外部表 238
10.2.2 处理外部表错误 239
10.2.3 修改外部表 241
10.3 临时表 241
10.4 簇与簇表 242
10.4.1 索引簇 242
10.4.2 散列簇 245
10.4.3 显示簇信息 248
10.5 管理视图 249
10.5.1 创建视图 249
10.5.2 管理视图 252
10.6 管理序列 254
10.6.1 创建序列 254
10.6.2 修改序列 256
10.7 管理同义词 256
10.8 实验指导 258
10.9 思考与练习 260
第11章 控制文件与日志文件的
管理 262
11.1 管理控制文件 262
11.1.1 控制文件简介 262
11.1.2 复合控制文件 263
11.1.3 建立控制文件 265
11.1.4 控制文件的备份与恢复 268
11.1.5 删除控制文件 269
11.1.6 查看控制文件信息 269
11.2 管理重做日志文件 270
11.2.1 重做日志简介 270
11.2.2 增加重做日志 271
11.2.3 删除重做日志 272
11.2.4 改变重做日志的
位置或名称 273
11.2.5 显示重做日志信息 274
11.3 管理归档日志 275
11.3.1 日志操作模式 275
11.3.2 控制归档 276
11.3.3 配置归档文件格式 278
11.3.4 配置归档位置 278
11.3.5 显示归档日志信息 280
11.4 查看日志信息 281
11.4.1 LogMiner概述 281
11.4.2 创建LogMiner使用的
字典文件 282
11.4.3 指定分析的日志文件 283
11.4.4 启动LogMiner 284
11.4.5 查看分析结果 285
11.4.6 结束LogMiner 285
11.5 实验指导 285
11.6 思考与练习 286
第12章 管理表空间和数据文件 288
12.1 建立表空间 288
12.1.1 建立普通表空间 288
12.1.2 建立大文件表空间 290
12.1.3 建立临时表空间 291
12.1.4 建立非标准块表空间 293
12.2 维护表空间 294
12.2.1 改变表空间可用性 294
12.2.2 改变表空间读写状态 296
12.2.3 改变表空间名称 297
12.2.4 设置默认表空间 297
12.2.5 删除表空间 297
12.2.6 查询表空间信息 298
12.3 管理数据文件 298
12.3.1 数据文件的管理策略 298
12.3.2 添加表空间数据文件 299
12.3.3 改变数据文件的大小 300
12.3.4 改变数据文件的可用性 301
12.3.5 改变数据文件的
名称和位置 301
12.4 管理UNDO表空间 303
12.4.1 UNDO概述 303
12.4.2 UNDO参数 304
12.4.3 建立UNDO表空间 304
12.4.4 修改UNDO表空间 305
12.4.5 切换UNDO表空间 305
12.4.6 设置UNDO记录保留
的时间 306
12.4.7 删除UNDO表空间 306
12.4.8 查看UNDO表
空间信息 307
12.5 实验指导 307
12.6 思考与练习 308
第13章 用户权限与安全 310
13.1 用户和模式 310
13.2 管理用户 311
13.2.1 创建用户 311
13.2.2 修改用户 314
13.2.3 删除用户 315
13.3 资源配置PROFILE 316
13.3.1 PROFILE概念 316
13.3.2 使用PROFILE
管理密码 316
13.3.3 使用PROFILE
管理资源 319
13.3.4 修改和删除PROFILE 321
13.3.5 显示PROFILE信息 322
13.4 管理权限 323
13.4.1 权限简介 323
13.4.2 管理系统权限 324
13.4.3 管理对象权限 329
13.5 管理角色 332
13.5.1 角色的概念 332
13.5.2 预定义角色 333
13.5.3 管理自定义角色 334
13.6 实验指导 338
13.7 思考与练习 339
第14章 导出与导入 341
14.1 EXPDP和IMPDP简介 341
14.2 EXPDP导出数据 342
14.2.1 调用EXPDP 342
14.2.2 EXPDP命令参数 345
14.3 IMPDP导入数据 347
14.3.1 IMPDP参数 347
14.3.2 调用IMPDP 349
14.3.3 移动表空间 350
14.4 SQL*Loader导入外部数据 353
14.4.1 SQL *Loader概述 353
14.4.2 加载数据 354
14.5 实验指导 356
14.6 思考与练习 357
第15章 备份与恢复 358
15.1 备份与恢复概述 358
15.2 RMAN概述 359
15.2.1 RMAN组件 360
15.2.2 RMAN通道 362
15.2.3 RMAN命令 366
15.3 使用RMAN备份数据库 367
15.3.1 RMAN备份策略 367
15.3.2 使用RMAN备份数据
库文件和归档日志 370
15.3.3 多重备份 373
15.3.4 BACKUP增量备份 373
15.3.5 镜像复制 374
15.4 RMAN完全恢复 375
15.4.1 RMAN恢复机制 375
15.4.2 恢复处于NOARCHIVELOG
模式的数据库 377
15.4.3 恢复处于ARCHIVELOG
模式的数据库 378
15.5 RMAN不完全恢复 379
15.5.1 基于时间的不完全恢复 379
15.5.2 基于撤销的不完全恢复 381
15.5.3 基于更改的不完全恢复 382
15.6 维护RMAN 383
15.6.1 交叉验证备份
CROSSCHECK 383
15.6.2 添加操作系统备份 384
15.6.3 查看备份信息 384
15.6.4 定义保留备份的策略 386
15.7 实验指导 387
15.8 思考与练习 388
