编辑推荐
·始终以云计算作为本书的主线,例子程序具有代表性;·难点和重点的章节给出的例子程序较多;·与实际工程中的应用保持一致;·所有的例子程序在Oracle 12c中通过运行;·当前我国高校数据库教学都采用人民大学王珊、萨师煊老师编写的《数据库系统概论》教材,为了便于学生学习,该书所采用的例子数据库与王珊、萨师煊老师编写的《数据库系统概论》中的例子数据库保持一致,读者按照书中的步骤要求,可将关盘中的数据一键完成例子数据库的对象的创建。作者在该书所涉及内容方面的优势:多年的数据库教学、科研和实际工程项目;每学期都教授数据库和Oracle课程;对Oracle 12c熟悉掌握;有多年的实际项目开发经验;书中的例子符合软件工程要求;贴近教学和实际工程应用;繁简得当;例子经过精心设计。
内容简介
本书全面、系统、深入地讲解了 Oracle 12c 数据库原理、应用和开发,也讲解了 Oracle 12c 常用的管理知 识,以 Oracle 12c 数据库云计算为线索,详细讲解了 CDB 和PDB。 本书共分 16 章。第 1 章介绍了 Oracle 12c 的基本知识、系统性能和特点,以及如何支持云计算;第 2章 介绍了 Oracle 12c 的系统结构,重点阐述了 CDB 和PDB 的概念、两者的关系以及如何创建 CDB 和PDB;第 3 章介绍了运行 Oracle 12c 所需要的服务、这些服务的作用,以及如何启动和配置,并对 SQL PLUS 语言进行 了较为详细的阐述;第 4 章介绍了 PL SQL 编程;第 5章介绍了数据库的表空间、概要、用户、角色,以及如 何创建和使用这四个对象;第 6 章对 Oracle 12c 支持的常用类型的数据表,以及如何对这些表做修改操作进行 了详细介绍;第 7 章介绍了数据查询;第 8 章介绍了对表的 DML 操作,如何对表进行 Insert、Delete、Update 和 Merge 操作;第 9 章介绍了视图和物化视图作用、创建、修改和解析,以及物化视图日志;第 10 章介绍了 数据库对象的索引、聚簇、序列,以及如何创建和使用这些数据库对象;第 11 章介绍了数据库对象,即包、包体、过程、函数,并分别阐述了如何创建和使用这些数据库对象;第 12 章介绍了数据库对象,即触发器、 游标以及静态 动态 PL SQL,触发器和游标这两个数据库对象在编程中应用广泛,因此本章给出了较多的应用 实例;第 13 章介绍了数据库安全;第 14 章介绍了事务和并发控制;第 15 章介绍了 RMAN 技术及应用,并给 出一些有代表性的实例;第 16 章介绍了闪回技术。 本书适合计算机科学与技术专业、软件工程专业、网络工程专业、信息安全专业学生阅读,也可作为 IT 技术人员的参考书。
作者简介
作者杜献峰先后出版了《asp.net 程序设计教程》《C 语言程序设计》 《TRIP非结构化数据库及其搜索引擎技术与应用》等多本畅销图书,有多年的数据库教学、科研和实际工程项目经验,精通Oracle 12c数据库开发,有多年的实际项目开发经验。
目录
- 第 1章 Oracle 12c和云计算1
- 1.1 大数据与云计算2
- 1.1.1 大数据2
- 1.1.2 云计算3
- 1.2 Oracle 12c支持云计算4
- 1.2.1 Oracle 12c数据库简介4
- 1.2.2 具备云计算能力4
- 1.2.3 简化数据库的整合4
- 1.2.4 简化大数据分析5
- 1.2.5 管理数据库云6
- 1.3 Oracle 12c体系结构6
- 1.4 安装Oracle 12c9
- 1.4.1 安装准备9
- 1.4.2 安装过程10
- 第2章 CDB和PDB操作17
- 2.1 多租户环境下用户的操作及工具18
- 2.1.1 多租户环境18
- 2.1.2 多租户环境的操作工具20
- 2.2 创建CDB数据库20
- 2.2.1 使用DBCA创建22
- 2.2.2 使用SQL语句手工创建25
- 2.3 操作CDB数据库25
- 2.3.1 使用SQL PLUS远程连接CDB
- 数据库28
- 2.3.2 使用SQL Developer远程连接CDB
- 数据库29
- 2.4 创建PDB数据库30
- 2.4.1 使用DBCA创建30
- 2.4.2 使用SQL DEVELOPER创建33
- 2.4.3 使用SQL语句手工创建35
- 2.5 打开与关闭PDB数据库36
- 2.5.1 启动PDB数据库36
- 2.5.2 关闭PDB数据库38
- 2.5.3 退出PDB数据库39
- 2.6 建立演示数据库39
- 2.7 操作演示数据库46
- 第3章 Oracle 12c服务与
- SQL PLUS51
- 3.1 Oracle 12c网络配置及服务52
- 3.1.1 配置Net Manager52
- 3.1.2 OracleOraDB12Home1TNSListener
- 服务53
- 3.1.3 OracleServiceDEMO服务54
- 3.2 企业管理器54
- 3.3 SQL PLUS命令56
- 3.4 NLS参数设置72
- 3.5 SQL PLUS设置Oracle 12c环境参数76
- 3.5.1 SQL PLUS位于Oracle 12c服务器端的
- 设置76
- 3.5.2 SQL PLUS位于客户端的设置78
- 3.6 数据字典78
- 第4章 PL SQL语言基础80
- 4.1 PL SQL简介81
- 4.2 PL SQL数据类型82
- 4.2.1 标量类型82
- 4.2.2 LOB类型87
- 4.2.3 复合类型87
- 4.2.4 %TYPE和%ROWTYPE定义
- 数据类型91
- 4.3 PL SQL程序块结构92
- 4.3.1 PL SQL语法结构93
- 4.3.2 变量声明93
- 4.3.3 变量赋值94
- 4.3.4 绑定变量95
- 4.3.5 常量96
- 4.3.6 使用PL SQL处理查询97
- 4.4 PL SQL控制结构97
- 4.4.1 顺序控制97
- 4.4.2 条件控制97
- 4.4.3 循环控制100
- 4.5 异常和异常处理103
- 4.5.1 内部定义异常104
- 4.5.2 预定义异常105
- 4.5.3 用户自定义异常106
- 4.6 PL SQL常用函数107
- 4.6.1 数学函数108
- 4.6.2 字符函数110
- 4.6.3 日期时间函数110
- 第5章 表空间 概要 用户 角色113
- 5.1 表空间114
- 5.1.1 永久表空间115
- 5.1.2 临时表空间119
- 5.1.3 撤销表空间122
- 5.1.4 修改表空间124
- 5.1.5 查询表空间125
- 5.1.6 删除表空间126
- 5.2 概要128
- 5.2.1 创建概要128
- 5.2.2 修改概要131
- 5.2.3 查询概要131
- 5.2.4 删除概要132
- 5.3 用户133
- 5.3.1 创建用户133
- 5.3.2 创建模式136
- 5.3.3 用户授权137
- 5.3.4 撤销用户权限140
- 5.3.5 用户及用户权限查询141
- 5.3.6 修改用户142
- 5.3.7 删除用户143
- 5.4 角色144
- 5.4.1 创建角色144
- 5.4.2 角色授权146
- 5.4.3 撤销角色权限147
- 5.4.4 角色及角色权限查询147
- 5.4.5 修改角色148
- 5.4.6 打开 关闭角色148
- 5.4.7 删除角色149
- 5.5 Oracle 12c逻辑结构150
- 第6章 数据表152
- 6.1 表类型153
- 6.2 表中约束155
- 6.3 创建表的前提158
- 6.4 堆表160
- 6.5 索引表162
- 6.6 聚簇表163
- 6.7 散列聚簇表167
- 6.8 外部表170
- 6.9 临时表173
- 6.10 嵌套表175
- 6.11 分区表178
- 6.11.1 范围分区表与间隔分区表179
- 6.11.2 散列分区表182
- 6.11.3 列表分区表183
- 6.11.4 组合分区表184
- 6.11.5 系统分区表187
- 6.11.6 引用分区表与间隔引用分区表189
- 6.12 使用ALTER TABLE修改表192
- 第7章 数据查询198
- 7.1 基本查询199
- 7.1.1 基本查询语法格式199
- 7.1.2 相关子查询与不相关子查询205
- 7.1.3 嵌套查询的4种形式206
- 7.1.4 UNION [ALL] INTERSECT
- MINUS查询形式208
- 7.2 查询子句211
- 7.2.1 带SAMPLE参数的查询211
- 7.2.2 使用闪回查询212
- 7.2.3 GROUP BY子句213
- 7.2.4 ORDER BY子句214
- 7.2.5 PIVOT子句与UNPIVOT子句215
- 7.2.6 按分区查询216
- 7.3 WITH语句查询217
- 7.3.1 WITH 函数218
- 7.3.2 WITH 子查询219
- 7.3.3 WITH 递归子查询220
- 7.4 层次查询221
- 7.5 输出查询结果223
- 第8章 表的DML操作227
- 8.1 插入数据228
- 8.1.1 常规方法插入数据229
- 8.1.2 直接路径方法插入数据230
- 8.1.3 多表数据插入231
- 8.2 更新数据233
- 8.2.1 非分区表数据更新233
- 8.2.2 分区表数据更新234
- 8.3 删除数据234
- 8.3.1 删除非分区表数据234
- 8.3.2 删除分区表数据 235
- 8.4 合并数据235
- 8.4.1 带有UPDATE或INSERT的MERGE
- 操作236
- 8.4.2 带有UPDATE和INSERT的MERGE
- 操作237
- 第9章 视图 物化视图 物化视图
- 日志239
- 9.1 关系视图241
- 9.1.1 关系视图定义241
- 9.1.2 查看视图定义244
- 9.1.3 删除视图245
- 9.1.4 视图查询245
- 9.1.5 视图解析245
- 9.2 物化视图246
- 9.2.1 创建物化视图247
- 9.2.2 查看物化视图定义249
- 9.3 物化视图日志249
- 第10章 索引 聚簇 序列 同义词251
- 10.1 索引252
- 10.1.1 创建索引253
- 10.1.2 查询索引256
- 10.1.3 删除索引257
- 10.2 聚簇257
- 10.2.1 索引聚簇创建与应用257
- 10.2.2 散列聚簇创建与应用258
- 10.2.3 查询聚簇259
- 10.2.4 删除聚簇259
- 10.3 序列259
- 10.3.1 序列创建及应用260
- 10.3.2 查询序列260
- 10.3.3 删除序列261
- 10.4 同义词261
- 10.4.1 同义词创建及应用262
- 10.4.2 查询同义词263
- 10.4.3 删除同义词263
- 第11章 包 包体 过程 函数264
- 11.1 包265
- 11.1.1 创建包265
- 11.1.2 查询包267
- 11.1.3 删除包268
- 11.2 包体268
- 11.2.1 包体创建与调用268
- 11.2.2 查询包体271
- 11.2.3 删除包体271
- 11.3 过程271
- 11.3.1 过程创建与调用272
- 11.3.2 查询过程274
- 11.3.3 删除过程275
- 11.4 函数275
- 11.4.1 函数创建与调用275
- 11.4.2 查询函数278
- 11.4.3 删除函数279
- 11.5 综合应用例子279
- 第12章 触发器 游标 静态
- 动态PL SQL285
- 12.1 触发器286
- 12.1.1 触发器创建与应用286
- 12.1.2 查询触发器297
- 12.1.3 删除触发器297
- 12.2 游标298
- 12.2.1 游标的创建与应用298
- 12.2.2 查询游标314
- 12.2.3 游标应用综合举例314
- 12.3 静态PL SQL319
- 12.4 动态PL SQL320
- 12.4.1 本地动态PL SQL320
- 12.4.2 DBMS_SQL包324
- 12.5 综合应用例子325
- 第13章 数据库安全329
- 13.1 数据库安全概述330
- 13.2 用户标识与鉴别330
- 13.2.1 用户标识种类330
- 13.2.2 密码331
- 13.2.3 密码文件335
- 13.3 存取控制336
- 13.4 应用上下文337
- 13.4.1 应用上下文的概念337
- 13.4.2 应用上下文的创建与调用337
- 13.4.3 读取应用上下文属性值339
- 13.5 Wallet技术339
- 13.5.1 使用OWM创建Wallet340
- 13.5.2 服务器端Wallet应用340
- 13.5.3 客户端Wallet应用344
- 13.5.4 Wallet与数字证书347
- 13.6 透明数据加密350
- 13.7 审计353
- 13.7.1 审计功能的开启和关闭353
- 13.7.2 创建权限审计355
- 13.7.3 创建行为审计356
- 13.7.4 创建角色审计356
- 13.7.5 打开审计策略356
- 13.7.6 查询审计策略358
- 13.8 SQL注入358
- 13.8.1 SQL注入攻击概述358
- 13.8.2 SQL注入攻击类型359
- 13.8.3 防止SQL注入攻击措施365
- 第14章 事务 并发控制370
- 14.1 事务371
- 14.1.1 事务概念371
- 14.1.2 设置事务属性373
- 14.1.3 保存点374
- 14.1.4 提交事务376
- 14.1.5 回滚事务377
- 14.1.6 自治事务377
- 14.2 并发控制379
- 14.2.1 数据并发性与一致性379
- 14.2.2 事务隔离380
- 14.2.3 封锁机制382
- 14.2.4 自动锁385
- 14.2.5 对查询结果加锁387
- 14.2.6 手动锁389
- 第15章 RMAN技术及应用392
- 15.1 RMAN简介393
- 15.2 启动RMAN393
- 15.3 CATALOG备份模式与NOCATALOG
- 备份模式397
- 15.4 通道配置与操作401
- 15.5 RMAN备份操作405
- 15.5.1 冷备份与热备份406
- 15.5.2 BACKUP操作407
- 15.5.3 COPY与BACKUP AS COPY的
- 区别412
- 15.6 RMAN还原与恢复操作413
- 15.6.1 还原(RESTORE)与
- 恢复(RECOVER)的区别413
- 15.6.2 RESTORE414
- 15.6.3 RECOVER415
- 15.7 RMAN其他常用命令416
- 15.7.1 RUN417
- 15.7.2 SET418
- 15.7.3 LIST419
- 15.7.4 REPORT419
- 15.7.5 CONFIGURE420
- 15.7.6 CROSSCHECK421
- 15.7.7 VALIDATE421
- 15.7.8 DELETE422
- 15.7.9 CHANGE423
- 15.7.10 HOST423
- 15.7.11 CREATE424
- 15.7.12 SHOW426
- 15.7.13 DUPLICATE426
- 15.7.14 REGISTER428
- 15.7.15 ADVISE FAILURE429
- 15.7.16 REPAIR FAILURE430
- 第16章 闪回技术432
- 16.1 闪回技术简介433
- 16.2 闪回数据库配置434
- 16.2.1 自动撤销段配置434
- 16.2.2 闪回事务配置435
- 16.2.3 授予必要权限435
- 16.3 应用开发中的闪回技术436
- 16.3.1 闪回查询436
- 16.3.2 闪回版本查询439
- 16.3.3 闪回事务查询441
- 16.3.4 闪回数据文档441
- 16.4 数据库管理中的闪回技术445
- 16.4.1 还原点技术445
- 16.4.2 闪回表448
- 16.4.3 闪回删除450
- 16.4.4 闪回数据库451
- 16.5 回收站操作452
- 参考文献454