精通Oracle Database 12c SQL & PL/SQL编程(第3版)
内容简介
学习通过编写SQL语句并构建PL/SQL程序来访问Oracle数据库。《精通OracleDatabase12cSQL&PL/SQL编程(第3版)》完全涵盖了*新版本Oracle数据库的功能和技术,指导读者编写SQL语句以检索和修改数据库中的信息、掌握SQL*Plus和SQLDeveloper、处理数据库对象、编写PL/SQL程序、采用性能优化技术、结合XML以及其他技术。这本Oracle指南包含掌握SQL所需的全部知识。
精通Oracle Database 12c SQL & PL/SQL编程(第3版)目录
版权信息
译者序
前言
第1章 简介
1.1 关系数据库简介
1.2 SQL简介
1.3 使用SQL*Plus
1.4 使用SQL Developer
1.5 创建store模式
1.6 添加、修改和删除行
1.7 连接数据库和断开连接
1.8 退出SQL*Plus
1.9 Oracle PL/SQL简介
1.10 小结
第2章 从数据库表中检索信息
2.1 对单表执行SELECT语句
2.2 选择一个表中的所有列
2.3 使用WHERE子句限定行
2.4 行标识符
2.5 行号
2.6 执行算术运算
2.7 使用列别名
2.8 使用连接操作合并列的输出结果
2.9 空值
2.10 禁止显示重复行
2.11 比较值
2.12 使用SQL操作符
2.13 使用逻辑操作符
2.14 逻辑操作符的优先级
2.15 使用ORDER BY子句对行进行排序
2.16 执行使用两个表的SELECT语句
2.17 使用表别名
2.18 笛卡尔积
2.19 执行使用多于两个表的SELECT语句
2.20 连接条件和连接类型
2.21 使用SQL/92语法执行连接
2.22 小结
第3章 使用SQL*Plus
3.1 查看表的结构
3.2 编辑SQL语句
3.3 保存、检索并运行文件
3.4 格式化列
3.5 设置页面大小
3.6 设置行大小
3.7 清除列的格式
3.8 使用变量
3.9 创建简单报表
3.10 从SQL*Plus获取帮助信息
3.11 自动生成SQL语句
3.12 断开数据库连接并退出SQL*Plus
3.13 小结
第4章 使用简单函数
4.1 使用单行函数
4.2 使用聚合函数
4.3 对行进行分组
4.4 小结
第5章 日期和时间的存储与处理
5.1 几个简单的存储和检索日期的例子
5.2 使用TO_CHAR()和TO_DATE()转换时间值
5.3 设置默认的日期格式
5.4 Oracle对两位年份的处理
5.5 使用时间值函数
5.6 使用时区
5.7 使用时间戳
5.8 使用时间间隔
5.9 小结
第6章 子查询
6.1 子查询的类型
6.2 编写单行子查询
6.3 编写多行子查询
6.4 编写多列子查询
6.5 编写关联子查询
6.6 编写嵌套子查询
6.7 编写包含子查询的UPDATE和DELETE语句
6.8 使用子查询因子化
6.9 小结
第7章 高级查询
7.1 使用集合操作符
7.2 使用TRANSLATE()函数
7.3 使用DECODE()函数
7.4 使用CASE表达式
7.5 层次化查询
7.6 使用ROLLUP和CUBE子句
第8章 分析数据
8.1 使用分析函数
8.2 使用MODEL子句
8.3 使用PIVOT和UNPIVOT子句
8.4 执行Top-N查询
8.5 在数据中发现模式
8.6 小结
第9章 修改表的内容
9.1 使用INSERT语句添加行
9.2 使用UPDATE语句修改行
9.3 使用RETURNING子句返回聚合函数的计算结果
9.4 使用DELETE语句删除行
9.5 数据库的完整性
9.6 使用默认值
9.7 使用MERGE合并行
9.8 数据库事务
9.9 查询闪回
9.10 小结
第10章 用户、特权和角色
数据库存储简介
10.1 用户
10.2 系统特权
10.3 对象特权
10.4 角色
10.5 审计
10.6 小结
第11章 创建表、序列、索引和视图
11.1 表
11.2 序列
11.3 索引
11.4 视图
11.5 闪回数据归档
11.6 小结
第12章 PL/SQL编程简介
12.1 块结构
12.2 变量和类型
12.3 条件逻辑
12.4 循环
12.5 游标
12.6 异常
12.7 过程
12.8 函数
12.9 包
12.10 触发器
12.11 其他PL/SQL特性
12.12 小结
第13章 数据库对象
13.1 对象简介
运行脚本以创建对象模式
13.2 创建对象类型
13.3 使用DESCRIBE获取有关对象类型的信息
13.4 在数据库表中使用对象类型
13.5 在PL/SQL中使用对象
13.6 类型继承
13.7 用子类型对象代替超类型对象
13.8 其他有用的对象函数
13.9 NOT INSTANTIABLE对象类型
13.10 用户自定义的构造函数
13.11 重载方法
13.12 通用调用
13.13 小结
第14章 集合
14.1 集合简介
运行脚本以创建集合模式
14.2 创建集合类型
14.3 使用集合类型定义表列
14.4 获取集合信息
14.5 填充集合元素
14.6 检索集合元素
14.7 使用TABLE()函数将集合视为一系列行
14.8 更改集合元素
14.9 使用映射方法比较嵌套表的内容
14.10 使用CAST()函数将集合从一种类型转换为另一种类型
14.11 在PL/SQL中使用集合
14.12 创建和使用多级集合
14.13 Oracle Database 10g对集合的增强
14.14 小结
第15章 大对象
15.1 大对象(LOB)简介
15.2 示例文件
15.3 理解大对象类型
15.4 创建包含大对象的表
15.5 在SQL中使用大对象
15.6 在PL/SQL中使用大对象
15.7 LONG和LONG RAW类型
15.8 Oracle Database 10g对大对象的增强
15.9 Oracle Database 11g对大对象的增强
15.10 Oracle Database 12c对大对象的增强
15.11 小结
第16章 SQL优化
16.1 SQL优化简介
16.2 使用WHERE子句过滤行
16.3 使用表连接而不是多个查询
16.4 执行连接时使用完全限定的列引用
16.5 使用CASE表达式而不是多个查询
16.6 添加表索引
16.7 使用WHERE而不是HAVING
16.8 使用UNION ALL而不是UNION
16.9 使用EXISTS而不是IN
16.10 使用EXISTS而不是DISTINCT
16.11 使用GROUPING SETS而不是CUBE
16.12 使用绑定变量
16.13 比较执行查询的成本
16.14 为优化器传递提示
16.15 其他优化工具
16.16 小结
第17章 XML和Oracle数据库
17.1 XML简介
17.2 从关系数据生成XML
17.3 将XML保存到数据库中
17.4 小结
附录 Oracle数据类型
前言
现在的数据库管理系统使用一种标准语言——结构化查询语言(StructuredQueryLanguage,SQL)访问。此外,SQL还可以对数据库中的信息进行检索、添加、更新和删除。本书将介绍如何真正掌握SQL,同时还会给出许多实用的例子。读者可以通过网络获得本书中用到的所有脚本和程序(详细信息参看后文“本书源代码下载”部分)。
通过本书读者可以:
掌握标准的SQL,以及Oracle公司为了使用Oracle数据库的特性而开发的一些扩展。
理解PL/SQL,它允许用户编写包含SQL语句的程序。
使用SQL*Plus执行SQL语句、脚本和报表;SQL*Plus是一个用于与数据库进行交互的工具。
对数据库执行查询、插入、更新和删除操作。
创建数据库表、序列、索引、视图和用户。
执行包含多条SQL语句的事务。
定义数据库对象类型,以及创建对象表来处理高级数据。
使用大对象来处理包含图像、音乐和电影的多媒体文件。
使用分析函数执行复杂计算。
实现高性能的优化技术,使SQL语句可以快速执行。
探讨Oracle数据库的XML功能。
使用*新的OracleDatabase12cSQL功能。
本书共包含17章和一个附录。
第1章简介
本章将介绍有关关系数据库和SQL的知识,然后给出几个简单查询,并使用SQL*Plus和SQLDeveloper执行这些查询,*后简要介绍PL/SQL。
第2章从数据库表中检索信息
本章将展示如何使用SELECT语句从一个或多个数据库表中检索信息,如何使用算术表达式执行计算,如何使用WHERE子句对行进行过滤,以及如何对从表中检索出的行排序。
第3章使用SQL*Plus
本章将介绍使用SQL*Plus来查看表的结构,编辑SQL语句,保存并运行脚本,设置列的输出格式,定义并使用变量,以及创建报表。
第4章使用简单函数
本章将介绍有关Oracle数据库中内置函数的知识。函数可以接受输入参数,并返回输出参数1。使用函数可以实现很多功能,例如计算一组数字的平均值和平方根。
第5章日期和时间的存储与处理
本章将介绍Oracle数据库如何处理与存储日期和时间(二者合称时间值)。本章还将介绍如何使用时间戳来存储特定的日期和时间,如何使用时间间隔来存储一定长度的时间段。
第6章子查询
本章将介绍如何在外部的SQL语句中放置SELECT语句。内部的SELECT语句被称为子查询。本章还将介绍子查询的各种类型,以及如何使用子查询从简单部件构建复杂语句。
第7章高级查询
本章将介绍如何执行包含高级操作符和函数的查询。例如,集合操作符可以合并由多个查询返回的行,TRANSLATE()函数可以将一个字符串中的字符转换为另一个字符串中的字符,DECODE()函数可以在一组值中搜索某个特定的值,CASE表达式可以执行if-then-else逻辑,ROLLUP和CUBE子句可以返回包含小计的行。OracleDatabase12c中新增加了CROSSAPPLY和OUTERAPPLY来合并两条SELECT语句返回的行,还增加了LATERAL以返回数据的内联视图。
第8章分析数据
本章将介绍有关分析函数的知识,分析函数可以用来执行复杂计算,例如查找每月销量*高的产品类型、业绩*佳的销售员等。本章还将介绍如何对层次化组织的数据进行查询,并将探讨如何使用MODEL子句执行行间计算。*后,我们会讲解PIVOT和UNPIVOT子句,使用它们可以了解大量数据的整体趋势。OracleDatabase12c中新增加了MATCH_RECOGNIZE子句来查找数据中的模式,还增加了FETCHFIRST子句来执行top-N查询。
第9章修改表的内容
本章将介绍如何使用INSERT、UPDATE和DELETE语句添加、修改和删除行,如何使用COMMIT语句使事务的处理结果永久生效,或者使用ROLLBACK语句完全取消事务执行的操作。本章还将介绍Oracle数据库如何同时处理多个事务。
第10章用户、特权和角色
本章将介绍有关数据库用户的知识以及如何使用特权和角色来控制用户可以在数据库中执行的特定任务。
第11章创建表、序列、索引和视图
本章将介绍有关表、序列和索引的知识。序列会生成一系列数字,而索引就如同书籍的索引,可以帮助读者快速访问表中的行。本章还将介绍有关视图的知识,视图是对一个或多个表预定义的查询。视图可以对用户屏蔽复杂性,并通过只允许视图访问表中有限的数据集,从另一层面上实现安全特性。本章还将讨论闪回数据归档,这会将对表所做的改变存储一段时间。OracleDatabase12c中新增加了在表中定义可见列和不可见列的能力。
第12章PL/SQL编程简介
本章将介绍有关PL/SQL的知识,PL/SQL构建在SQL基础之上,使用PL/SQL可以在数据库中编写包含SQL语句的存储程序。PL/SQL包含标准的编程结构。
第13章数据库对象
本章将介绍如何创建数据库对象类型,数据库对象类型可以包括属性和方法;还将介绍如何使用对象类型来定义列对象和对象表,以及如何使用SQL和PL/SQL来操纵对象。
第14章集合
本章将介绍如何创建集合类型,集合可以包含多个元素;还将介绍如何使用集合类型来定义表中的列,以及如何使用SQL和PL/SQL来操纵集合。
第15章大对象
本章将介绍有关大对象的知识,大对象可以用来存储多达128TB的字符和二进制数据(也可以是指向外部文件的指针);此外,还将介绍有关较旧的LONG类型的知识,为了保持向后兼容性,在OracleDatabase12c中依然支持LONG类型。
第16章SQL优化
本章将介绍SQL优化的一些技巧,这些技巧可以用来缩短查询执行的时间;本章还将介绍有关Oracle优化器的知识,以及如何向优化器传递一些提示。此外还介绍了如何使用高级调优工具。
第17章XML和Oracle数据库
可扩展标记语言(XML)是一种通用标记语言,可用来在Internet上共享结构化数据,并可用来编码数据和其他文档。本章将介绍如何从关系数据生成XML,以及如何将XML保存到数据库中。
附录Oracle数据类型
本附录列出了OracleSQL和PL/SQL中可以使用的数据类型。
本书读者对象
本书适用于以下读者:
需要编写SQL和PL/SQL的开发人员
需要深入了解SQL的数据库管理员
需要编写SQL查询来从自己公司的数据库中获得信息的业务用户
需要简单了解SQL和PL/SQL的技术主管和技术顾问
读者阅读本书,不需要预先了解Oracle数据库、SQL或PL/SQL的知识;本书为读者提供了成为这方面专家所需的全部知识。
文章来源: 博客园
- 还没有人评论,欢迎说说您的想法!