第1章 Oracle数据库概述 1
1.1 Oracle数据库产品结构及组成 1
1.1.1 标准版1 1
1.1.2 标准版 2
1.1.3 企业版 2
1.2 数据库基本术语 3
1.2.1 数据库 3
1.2.2 数据库管理系统 4
1.2.3 数据库系统 4
1.2.4 数据库模式 6
1.2.5 数据模型 9
1.2.6 数据完整性约束 10
1.2.7 联机事务处理和联机分析处理 11
1.2.8 数据仓库 11
1.3 Oracle基本术语 12
1.3.1 数据字典 13
1.3.2 数据文件 13
1.3.3 控制文件 14
1.3.4 日志文件 15
1.3.5 表空间 16
1.3.6 段 18
1.3.7 区 19
1.3.8 数据块 19
1.4 Oracle 12c的新特性 20
1.4.1 数据库管理部分 20
1.4.2 CDB与PDB部分 22
1.4.3 云端连接 23
第2章 Oracle在Windows8上的安装与配置 24
2.1 下载Oracle 12cR1 forWindows x64的版本 24
2.2 Oracle通用安装器 24
2.3 Oracle数据库软件的安装准备 25
2.4 安装过程 25
2.5 配置服务 31
2.6 安装后的验证 31
第3章 SQL基础 34
3.1 SQL概述 34
3.1.1 SQL的功能 35
3.1.2 SQL的特点 36
3.1.3 SQL语句的编写规则 37
3.2 数据定义 38
3.2.1 CREATE 39
3.2.2 DROP 41
3.2.3 ALTER 43
3.3 数据查询 43
3.3.1 简单查询 44
3.3.2 WHERE子句 47
3.3.3 ORDER BY子句 50
3.3.4 GROUP BY子句 51
3.3.5 HAVING子句 54
3.3.6 多表连接查询 55
3.3.7 集合操作 63
3.3.8 子查询 65
3.4 数据操纵 68
3.4.1 INSERT语句 68
3.4.2 UPDATE语句 71
3.4.3 DELETE语句 72
3.4.4 TRUNCATE语句 72
3.5 数据控制 73
3.5.1 GRANT语句 73
3.5.2 REVOKE语句 75
3.6 Oracle常用函数 76
3.6.1 字符类函数 77
3.6.2 数学类函数 80
3.6.3 日期类函数 81
3.6.4 转换类函数 81
3.6.5 聚集类函数 82
第4章 Oracle PL/SQL及编程 84
4.1 PL/SQL简介 84
4.1.1 PL/SQL的基本结构 84
4.1.2 PL/SQL注释 85
4.1.3 PL/SQL字符集 86
4.1.4 PL/SQL数据类型 87
4.1.5 PL/SQL变量和常量 90
4.1.6 PL/SQL语句控制结构 90
4.1.7 PL/SQL表达式 96
4.2 PL/SQL的游标 97
4.2.1 基本原理 97
4.2.2 显式游标 97
4.2.3 隐式游标 102
4.2.4 游标属性 103
4.2.5 游标变量 105
4.3 过程 107
4.3.1 创建过程 107
4.3.2 调用过程 108
4.3.3 删除过程 108
4.3.4 过程的参数类型及传递 109
4.4 函数 110
4.4.1 创建函数 110
4.4.2 调用函数 111
4.4.3 删除函数 112
4.5 包 112
4.5.1 基本原理 112
4.5.2 创建包 113
4.5.3 调用包 114
4.5.4 删除包 115
4.6 触发器 115
4.6.1 触发器的基本原理 115
4.6.2 创建触发器 116
4.6.3 执行触发器 117
4.6.4 删除触发器 117
第5章 熟悉SQL*Plus环境 118
5.1 进入和退出SQL*Plus环境 118
5.1.1 启动SQL*Plus 118
5.1.2 创建SQL*Plus快捷方式 121
5.1.3 退出SQL*Plus环境 122
5.2 SQL*Plus编辑器的编辑命令 122
5.2.1 编辑命令 122
5.2.2 保存命令 123
5.2.3 加入注释 124
5.2.4 运行命令 124
5.2.5 编写交互命令 125
5.2.6 使用绑定变量 126
5.2.7 跟踪语句 129
5.3 设置SQL*Plus环境 130
5.3.1 SHOW命令 133
5.3.2 SET命令 133
5.4 SQL*Plus环境介绍 136
5.4.1 存储SQL*Plus环境 136
5.4.2 假脱机输出 136
5.4.3 联机帮助 136
5.5 使用SQL*Plus格式化查询结果 137
5.5.1 格式化列 137
5.5.2 定义页与报告的标题和维数 141
5.5.3 存储和打印结果 142
第6章 Oracle的基本操作 143
6.1 Oracle的启动与关闭 143
6.1.1 启动Oracle数据库 143
6.1.2 关闭Oracle数据库 150
6.2 表的创建与修改 153
6.2.1 表的基本概念 153
6.2.2 表结构设计 154
6.2.3 表的创建 157
6.2.4 修改表结构 158
6.3 索引 159
6.3.1 索引的概念 160
6.3.2 创建索引 160
6.3.3 删除索引 161
6.4 视图 162
6.4.1 视图的概念 162
6.4.2 创建视图 162
6.4.3 视图更改 166
6.4.4 删除视图 166
6.5 数据操纵与数据查询 166
6.5.1 复制原表插入记录 166
6.5.2 使用视图 167
6.5.3 使用PL/SQL 169
6.5.4 数据查询 170
第7章 Oracle数据库管理操作 173
7.1 学会使用视图 173
7.1.1 增加安全性 173
7.1.2 隐藏数据的复杂性 174
7.1.3 实现命名简洁性和易读性 176
7.1.4 实现更改灵活性 176
7.2 实现记录的唯一性 177
7.2.1 用键实现 177
7.2.2 创建唯一索引 178
7.2.3 使用序列 179
7.3 实现数据的完整性 183
7.3.1 域完整性 183
7.3.2 实体完整性 187
7.3.3 引用完整性 188
7.3.4 存储过程检查 190
7.3.5 使用触发器 190
7.4 避免更改引起的大量改动 191
7.4.1 使用视图 191
7.4.2 使用同义词 192
7.4.3 使用游标 193
第8章 数据库用户管理 194
8.1 授予权限 194
8.1.1 直接授权 195
8.1.2 授权角色 202
8.1.3 使用ALTER USER语句修改用户的默认角色 205
8.1.4 使用SETROLE控制角色使用 207
8.2 回收权限 208
8.2.1 逐一回收 208
8.2.2 删除角色 209
8.2.3 删除数据库对象 209
8.2.4 删除用户 209
8.3 不同用户权限管理 210
8.4 管理对数据库对象的访问 210
8.4.1 使用用户口令 210
8.4.2 使用权限控制 211
8.4.3 使用数据库链接 211
8.4.4 使用配置文件 212
第9章 数据库空间管理 214
9.1 建立数据库时的空间设计 214
9.1.1 指定SYSTEM表空间初值 215
9.1.2 设置其他表空间初值 219
9.2 在空间充足时的管理 220
9.2.1 使用数据字典动态监视 220
9.2.2 向表空间增加数据文件 221
9.3 解决空间不足的方法 221
9.3.1 增加数据文件大小 221
9.3.2 创建新表空间 223
9.3.3 动态增加表空间 225
9.3.4 三种方法的区别与比较 226
9.4 合理利用存储空间 228
9.4.1 采用正确的数据类型 228
9.4.2 存储参数的正确设置 230
9.4.3 定期回收无用表空间 232
9.4.4 归档历史表空间 233
第10章 备份与恢复机制 235
10.1 备份与恢复的方法 235
10.2 使用数据泵进行逻辑备份和恢复 236
10.2.1 使用expdp导出数据 236
10.2.2 使用impdp导入数据 238
10.3 脱机备份与恢复 240
10.3.1 脱机备份 240
10.3.2 脱机恢复 241
10.4 联机备份与恢复 242
10.4.1 归档日志模式的设置 242
10.4.2 创建恢复目录所用的表空间 242
10.4.3 创建RMAN用户并授权 242
10.4.4 创建恢复目录 243
10.4.5 注册目标数据库 243
10.4.6 使用RMAN程序进行备份 243
10.4.7 使用RMAN程序进行恢复 244
10.5 自动备份与恢复 244
10.5.1 闪回数据库 244
10.5.2 闪回表 245
10.5.3 闪回回收站 245
10.5.4 闪回查询 245
10.5.5 闪回版本查询 246
10.5.6 闪回事务查询 246
10.6 几种备份与恢复方法的比较 246
第11章 控制文件及日志文件的管理 247
11.1 控制文件 247
11.1.1 控制文件概述 247
11.1.2 多路复用控制文件 248
11.1.3 控制文件的创建 251
11.1.4 控制文件的备份与恢复 255
11.1.5 控制文件的查询与删除 256
11.2 日志文件 258
11.2.1 日志文件及存储策略 258
11.2.2 增加日志组和日志成员 260
11.2.3 设置日志自动存档功能 268
11.2.4 监视日志工作 272
第12章 数据库控制 278
12.1 用事务控制操作 278
12.1.1 什么是事务 278
12.1.2 设置事务 281
12.1.3 事务提交 282
12.1.4 事务回滚 283
12.1.5 设置回退点 283
12.2 用锁控制并发存取 283
12.2.1 为何加锁 284
12.2.2 加锁的方法 287
第13章 Oracle数据库的安全管理 289
13.1 Oracle数据库安全性概述 289
13.1.1 Oracle 12c的安全性体系 289
13.1.2 Oracle 12c的安全性机制 290
13.2 用户管理 290
13.2.1 创建用户 291
13.2.2 修改用户 294
13.2.3 删除用户 294
13.2.4 查询用户 295
13.3 虚拟专用数据库 295
13.3.1 基于行的VPD 296
13.3.2 基于列的VPD 300
13.4 透明数据加密(TDE) 301
13.4.1 创建Oracle Wallet 301
13.4.2 加密表 302
13.4.3 加密表空间 302
13.5 对备份进行加密 302
13.5.1 透明加密模式 302
13.5.2 基于密码的加密模式 303
13.5.3 混合加密模式 303
第14章 留言板系统 304
14.1 系统概述 304
14.1.1 留言板系统的应用背景 304
14.1.2 留言板系统的总体需求 305
14.1.3 留言板系统的功能分析 305
14.1.4 留言板系统的设计思路 306
14.2 系统功能模块设计 306
14.2.1 系统框架 306
14.2.2 系统功能模块划分 307
14.3 数据库设计 307
14.3.1 数据库需求分析 307
14.3.2 数据库概念结构设计 308
14.3.3 数据库逻辑结构设计 309
14.3.4 数据库表的创建 310
14.3.5 数据库的连接 311
14.4 系统主要功能模块的设计与实现 312
14.4.1 用户登录模块 312
14.4.2 添加留言模块 318
14.4.3 回复留言模块 320
14.4.4 访问留言人主页 321
14.4.5 删除留言 321
14.4.6 修改密码 324
14.5 本章小结 326
第15章 新闻发布系统 327
15.1 系统概述 327
15.1.1 新闻发布系统的应用背景 327
15.1.2 新闻发布系统的总体需求 328
15.1.3 新闻发布系统的功能分析 328
15.1.4 新闻发布系统的设计思路 328
15.2 系统功能模块设计 329
15.3 数据库设计 330
15.3.1 数据库需求分析 330
15.3.2 数据库概念结构设计 331
15.3.3 数据库逻辑结构设计 332
15.3.4 数据库表的创建 334
15.3.5 数据库的连接 336
15.4 网站总体框架 340
15.4.1 文件布局 340
15.4.2 网站首页的运行结果 340
15.5 系统后台主要功能模块的设计与实现 342
15.5.1 登录模块设计 342
15.5.2 管理员维护模块设计 347
15.5.3 新闻管理模块设计 355
15.6 系统前台主要功能模块的设计与实现 361
15.6.1 今日新闻的显示 361
15.6.2 查找新闻 364
15.6.3 查看新闻人物和投票 366
15.7 本章小结 371
附录A Oracle 12c词汇集锦 372
附录B Oracle 12c选件概述 378