第1章 Oracle数据库概述 1
1.1 Oracle数据库简介 1
1.1.1 Oracle数据库的应用现状 1
1.1.2 Oracle数据库的发展 2
1.1.3 Oracle 11g数据库的新特性 3
1.1.4 Oracle的网格计算 4
1.2 Oracle 11g的安装 6
1.2.1 Oracle的硬件要求 6
1.2.2 在Windows环境下的安装过程 7
1.3 Oracle 11g的基本服务 16
1.4 Oracle数据库的创建、启动和停止 17
1.4.1 使用DBCA创建Oracle数据库 17
1.4.2 启动Oracle数据库 17
1.4.3 停止Oracle数据库 19
小结 20
习题 21
第2章 Oracle的体系结构 22
2.1 物理存储结构 22
2.1.1 数据文件 22
2.1.2 控制文件 23
2.1.3 重做日志文件 23
2.1.4 其他文件 24
2.2 逻辑存储结构 25
2.2.1 表空间 25
2.2.2 段 26
2.2.3 区 26
2.2.4 数据块 27
2.3 内存结构 28
2.3.1 系统全局区 28
2.3.2 程序全局区 30
2.4 进程结构 30
2.4.1 进程结构的介绍 30
2.4.2 后台进程 31
2.5 数据字典 33
2.5.1 Oracle数据字典介绍 33
2.5.2 Oracle常用数据字典 34
小结 36
习题 37
第3章 SQL*Plus管理工具 38
3.1 SQL*Plus的基本用法 38
3.1.1 登录与退出数据库 38
3.1.2 获取帮助信息 40
3.1.3 修改SQL*Plus的设置信息 41
3.2 SQL*Plus中的缓冲区 43
3.2.1 执行缓冲区中的内容 43
3.2.2 编辑缓冲区中的内容 44
3.2.3 读写操作系统文件 47
3.3 在SQL*Plus中使用变量 50
3.3.1 用户自定义变量 50
3.3.2 参数变量 51
3.3.3 与变量有关的交互式命令 52
3.4 SQL*Plus的报表功能 54
3.4.1 设计报表标题 54
3.4.2 设计报表尺寸 55
3.4.3 设计报表显示格式 55
3.4.4 统计特定列 59
小结 61
习题 61
第4章 Oracle表空间管理 63
4.1 表空间概述 63
4.2 创建表空间 64
4.2.1 创建本地管理表空间 66
4.2.2 创建字典管理表空间 67
4.2.3 创建大文件表空间 68
4.2.4 创建临时表空间 68
4.2.5 创建撤销表空间 70
4.2.6 创建非标准块表空间 70
4.3 维护表空间 71
4.3.1 改变表空间的可用性 71
4.3.2 改变表空间的读写状态 73
4.3.3 重命名表空间 74
4.3.4 设置默认表空间 74
4.3.5 删除表空间 75
4.4 管理数据文件 75
4.4.1 修改数据文件大小 75
4.4.2 增加表空间的数据文件 76
4.4.3 修改表空间中数据文件的自动扩展性 77
4.4.4 移动表空间中的数据文件 77
4.4.5 删除表空间中的数据文件 78
小结 79
习题 79
第5章 SQL基础 80
5.1 SQL语句概述 80
5.1.1 SQL的特点 80
5.1.2 SQL分类 80
5.1.3 SQL规范与操作 81
5.2 数据定义语言 81
5.2.1 表 81
5.2.2 表的完整性约束 84
5.2.3 索引 87
5.2.4 视图 88
5.2.5 序列 92
5.2.6 同义词 93
5.3 数据操纵语言 94
5.3.1 SELECT基本查询 94
5.3.2 Oracle常用操作符 99
5.3.3 添加数据INSERT 103
5.3.4 修改数据UPDATE 104
5.3.5 删除数据DELETE或TRUNCATE 104
5.4 事务及其控制语言 104
5.4.1 事务的相关概念 105
5.4.2 事务处理 105
小结 106
习题 106
第6章 SELECT高级查询 108
6.1 连接查询 108
6.1.1 简单连接查询 108
6.1.2 内连接 109
6.1.3 为表设置别名 109
6.1.4 非等值连接 111
6.2 使用JOIN关键字的连接查询 112
6.2.1 内连接查询 112
6.2.2 外连接查询 113
6.2.3 交叉连接 115
6.3 子查询 116
6.3.1 简单子查询 117
6.3.2 带IN(NOT IN)的子查询 117
6.3.3 带ANY的子查询 118
6.3.4 带ALL的子查询 118
6.3.5 关联子查询 119
6.3.6 在其他子句中使用子查询 120
6.4 集合查询 121
小结 122
习题 123
第7章 Oracle内置函数 124
7.1 字符型函数 124
7.1.1 字母大小写转换函数 125
7.1.2 字符串连接函数 126
7.1.3 字符串截取函数 126
7.1.4 获取字符串长度函数 127
7.1.5 字符串搜索函数 127
7.1.6 字符串填充函数 128
7.1.7 删除字符串首尾指定字符函数 129
7.1.8 替换字符串函数 130
7.2 数值函数 130
7.2.1 绝对值、取余和判断数值函数 131
7.2.2 三角函数 132
7.2.3 以指定数值为准的整数函数 132
7.2.4 四舍五入截取函数 133
7.3 日期时间函数 134
7.3.1 系统日期、时间函数 135
7.3.2 指定月份函数 135
7.3.3 返回指定月份最后一天函数 135
7.4 转换函数 136
7.4.1 数值转换成字符型函数 138
7.4.2 字符转换成日期型函数 139
7.4.3 字符转换成数字函数 140
7.4.4 其他转换成数字函数 140
7.4.5 聚合函数 141
小结 141
习题 142
第8章 PL/SQL编程基础 143
8.1 PL/SQL程序块结构 143
8.2 PL/SQL的基本语法 144
8.2.1 常量和变量 144
8.2.2 数据类型 146
8.2.3 绑定变量 152
8.3 控制结构 153
8.3.1 条件控制 153
8.3.2 循环控制 157
8.3.3 顺序控制 159
8.4 游标 159
8.4.1 隐式游标 160
8.4.2 显式游标 160
8.4.3 游标变量 163
8.5 异常处理 164
8.5.1 预定义异常 165
8.5.2 非预定义异常 165
8.5.3 自定义异常 166
8.5.4 引发应用程序异常 167
小结 167
习题 168
第9章 PL/SQL高级编程 169
9.1 存储过程 169
9.1.1 创建和调用存储过程 169
9.1.2 存储过程的参数 170
9.1.3 修改与删除存储过程 173
9.1.4 查询存储过程的定义信息 174
9.2 函数 174
9.2.1 创建函数 174
9.2.2 调用函数 175
9.2.3 修改和删除函数 175
9.3 程序包 175
9.3.1 程序包规范 176
9.3.2 程序包体 176
9.3.3 调用程序包中的元素 177
9.3.4 删除程序包 177
9.4 触发器 178
9.4.1 触发器简介 178
9.4.2 语句级触发器 179
9.4.3 行级触发器 180
9.4.4 INSTEAD OF触发器 182
9.4.5 系统事件触发器 183
9.4.6 用户事件触发器 184
9.4.7 管理触发器 185
小结 186
习题 186
第10章 数据库安全管理 188
10.1 数据库安全性概述 188
10.2 用户管理 188
10.2.1 创建用户 190
10.2.2 修改用户 191
10.2.3 删除用户 191
10.2.4 查询用户信息 192
10.3 权限管理 193
10.3.1 授予权限 193
10.3.2 回收权限 200
10.4 角色管理 201
10.4.1 创建角色 202
10.4.2 角色权限的授予与回收 202
10.4.3 修改角色 203
10.4.4 角色的生效与失效 203
10.4.5 删除角色 204
10.4.6 使用角色进行权限管理 204
10.4.7 查询角色信息 205
10.5 概要文件管理 206
10.5.1 概要文件中的参数 206
10.5.2 概要文件中的管理 206
10.6 数据库审计 208
10.7 使用OEM进行安全管理 208
小结 209
习题 209
第11章 数据备份与恢复 210
11.1 配置数据库的备份与恢复 210
11.1.1 备份与恢复问题 210
11.1.2 失败类别 210
11.1.3 实例恢复 211
11.1.4 实例恢复的过程 211
11.1.5 实例恢复不可能导致数据库出现错误 211
11.1.6 调整实例恢复 212
11.1.7 实例恢复与MTTR 213
11.1.8 MTTR顾问程序 214
11.1.9 配置数据库的可恢复性 214
11.1.10 保护控制文件 214
11.1.11 保护联机重做日志文件 215
11.1.12 archivelog模式与归档器进程 216
11.1.13 复用重做日志 217
11.1.14 将数据库转换至archivelog模式 218
11.2 备份Oracle数据库 219
11.2.1 备份工具 219
11.2.2 概念与术语 220
11.2.3 全部备份与部分备份 220
11.2.4 完整备份与增量备份 220
11.2.5 脱机备份与联机备份 221
11.2.6 映像副本与备份集 222
11.2.7 RMAN的设置 223
11.2.8 设备的设置 223
11.2.9 备份集的设置 223
11.2.10 策略的设置 224
11.2.11 调度自动的备份 224
11.2.12 使用SQL*Plus备份 224
11.2.13 管理RMAN备份 225
11.2.14 默认的备份目的地 226
11.3 恢复Oracle数据库 226
11.3.1 恢复结构与进程 226
11.3.2 介质失败后的恢复 227
11.3.3 恢复受损的复用控制文件 228
11.3.4 恢复受损的复用联机重做日志文件 228
11.3.5 恢复受损的控制文件 228
11.3.6 恢复受损的数据文件 229
11.3.7 noarchivelog模式中数据文件的恢复 229
11.3.8 archivelog模式中非重要文件的恢复 229
11.3.9 恢复受损的重要数据文件 230
11.3.10 恢复受损的非重要数据文件 230
小结 230
习题 231
第12章 闪回技术 232
12.1 闪回技术概述 232
12.2 闪回恢复区 232
12.2.1 闪回恢复区功能 232
12.2.2 闪回恢复区设置 233
12.3 闪回数据库 234
12.4 闪回表 235
12.4.1 闪回到时间戳 236
12.4.2 闪回到SCN 237
12.5 闪回删除 238
12.5.1 回收站 238
12.5.2 使用ORIGINAL_NAME闪回删除 238
12.5.3 使用OBJECT_NAME闪回删除 239
12.5.4 清除回收站中的对象 240
12.6 闪回查询 241
12.7 闪回版本查询 242
12.8 闪回数据归档 243
12.8.1 创建闪回数据归档 244
12.8.2 管理闪回数据归档区 244
12.8.3 为表指定闪回数据归档区 245
12.8.4 使用闪回数据归档 246
小结 247
习题 247
参考文献 249