现在的数据库管理系统实现了一种标准语言——结构化查询语言(Structured Query Language,SQL)。除了具有其他语言的特点之外,SQL还可以对数据库中的信息进行检索、添加、修改和删除。本书将介绍如何真正掌握SQL,同时还会给出许多实用的例子。读者可以通过Internet获得本书中用到的所有脚本和程序(详细信息参看后文“本书源代码下载”部分)。 通过本书读者可以: ● 掌握标准的SQL,以及Oracle公司为了使用Oracle数据库的特性而开发的一些扩展。 ● 理解PL/SQL(过程化语言/SQL),它构建在SQL基础之上,允许用户编写包含SQL语句的程序。 ● 使用SQL*Plus执行SQL语句、脚本和报表;SQL*Plus就是一个与数据库进行交互的工具。 ● 对数据库执行查询、插入、更新和删除操作。 ● 创建数据库表、序列、索引、视图和用户。 ● 执行包含多条SQL语句的事务。 ● 定义数据库对象类型,以及创建对象表来处理高级数据。 ● 使用大对象来处理包含图像、音乐和电影的多媒体文件。 ● 使用分析函数执行复杂计算。 ● 使用所有最新的Oracle Database 11g特性,例如PIVOT和UNPIVOT、闪回归档以及更多新特性。 ● 实现高性能的优化技术,使SQL语句可以快速执行。 ● 编写使用JDBC来访问Oracle数据库的Java程序。 ● 掌握Oracle数据库的XML功能。 本书共包含17章和一个附录。 第1章 简介 本章将介绍有关关系数据库和SQL的知识,然后给出几个简单查询,并使用SQL*Plus和SQL Developer执行这些查询,最后简要介绍PL/SQL。 第2章 从数据库表中检索信息 本章将展示如何使用SELECT语句从一个或多个数据库表中检索信息,如何使用算术表达式执行计算,如何使用WHERE子句对行进行过滤,以及如何排序从表中检索出的行。 第3章 使用SQL*Plus 本章将介绍使用SQL*Plus来查看表的结构,编辑SQL语句,保存并运行脚本,设置列的输出格式,定义并使用变量,以及创建报表。 第4章 使用简单函数 本章将介绍有关Oracle数据库中内置函数的知识。函数可以接受输入参数,并返回一个输出参数。使用函数可以实现很多功能,例如计算一组数字的平均值和方根。 第5章 日期和时间的存储与处理 本章将介绍Oracle数据库如何处理和存储日期和时间(二者合称时间值)。本章还将介绍如何使用时间戳来存储特定的日期和时间,如何使用时间间隔来存储一定长度的时间片段。 第6章 子查询 本章将介绍如何在一个外部的SQL语句中使用SELECT语句。内部的SELECT语句被称为子查询。本章还将介绍子查询的各种类型,以及如何使用子查询从简单部件构建复杂语句。 第7章 高级查询 本章将介绍如何执行包含高级操作符和函数的查询。例如,集合操作符可以合并由多个查询返回的记录,TRANSLATE函数可以将一个字符串中的字符转换为另外一个字符串中的字符,DECODE函数可以在一组值中搜索某个特定的值,CASE表达式可以执行if-then-else逻辑,ROLLUP和CUBE子句可以返回包含小计的记录。本章还将介绍有关分析函数的知识,分析函数可以用来执行复杂计算,例如查找每月销量最高的产品类型、业绩最佳的销售员等。本章还将介绍如何对层次化组织的数据进行查询,并将探讨如何使用MODEL子句执行记录间的计算。最后,我们会讲解Oracle Databse 11g新增加的PIVOT和UNPIVOT子句,使用它们可以了解大量数据的整体趋势。 第8章 修改表的内容 本章将介绍如何使用INSERT、UPDATE和DELETE语句添加、修改和删除记录,如何使用COMMIT语句使事务的处理结果永久生效,或者使用ROLLBACK语句完全取消事务执行的操作。本章还将介绍Oracle数据库如何同时处理多个事务。 第9章 用户、特权和角色 本章将介绍有关数据库用户的知识及如何使用特权和角色来控制用户可以在数据库中执行的特定任务。 第10章 创建表、序列、索引和视图 本章将介绍有关表、序列和索引的知识。序列会生成一系列数字,而索引就如同书籍的索引,可以帮助读者快速访问记录。本章还将介绍有关视图的知识,视图是对一个或多个表预定义的查询。除了其他优点之外,视图还可以对用户屏蔽复杂性,通过只允许视图访问表中有限的数据集,从另一个层面上实现安全特性。本章还将讨论闪回数据归档,这是Oracle Database 11g中新增加的特性。闪回数据归档会将对表所做的改变存储一段时间。 第11章 PL/SQL 编程简介 本章将介绍有关PL/SQL的知识,PL/SQL构建在SQL基础之上,使用PL/SQL可以在数据库中编写包含SQL语句的存储过程。PL/SQL包含标准的编程结构。 第12章 数据库对象 本章将介绍如何创建数据库对象类型,数据库对象类型可以包括属性和方法;还将介绍如何使用对象类型来定义列对象和对象表,以及如何使用SQL和PL/SQL来操纵对象。 第13章 集合 本章将介绍如何创建集合类型,集合可以包含多个元素;还将介绍如何使用集合类型来定义表中的列,如何使用SQL和PL/SQL来操纵集合。 第14章 大对象 本章将介绍有关大对象的知识,大对象可以用来存储多达128TB的字符和二进制数据或者也可以是指向外部文件的指针;此外,还将介绍有关早期的LONG类型的知识,为了保持向后兼容性,在Oracle Database 11g中依然支持LONG类型。 第15章 使用Java运行SQL 本章将介绍使用Java通过JDBC应用程序编程接口运行SQL的知识。Java程序可以使用JDBC访问数据库。 第16章 SQL优化 本章将介绍SQL优化的一些技巧,这些技巧可以用来缩短查询执行的时间;本章还将介绍有关Oralce优化器的知识,以及如何向优化器传递一些提示。 第17章 XML和Oracle数据库 可扩展标记语言(XML)是一种通用标记语言,可用来共享Internet上的结构化数据,并可用来编码数据和其他文档。本章将介绍如何从关系数据生成XML,以及如何将XML保存到数据库中。 附录A Oracle数据类型 本附录列出了Oracle SQL和PL/SQL中可以使用的数据类型。 本书读者对象 本书适用于以下读者: ● 需要编写SQL和PL/SQL的开发人员。 ● 需要深入了解SQL的数据库管理员。 ● 需要编写SQL查询来从自己公司的数据库中获得信息的商业用户。 ● 需要简单了解SQL和PL/SQL的技术主管和技术顾问。 读者阅读本书,不需要预先了解Oracle数据库、SQL或PL/SQL的知识;本书为读者提供了成为这方面的专家所需的全部知识。 本书源代码下载 本书中使用的所有SQL脚本、程序以及其他文件都可以从Oracle出版社的网站或本书的合作站点www.tupwk.com.cn/downpage上下载;这些文件都被打包成一个Zip文件。下载这个Zip文件之后,需要解压缩。这样就会创建一个sql_book目录,其中包含以下子目录: ● Java 包含了第15章中使用的Java程序。 ● sample_files 包含了第14章中使用的示例文件。 ● SQL 包含了本书中使用的SQL脚本,包括创建和填充示例数据库表的脚本。 ● xml_files 包含了第17章中使用的XML。 尽情享受吧,希望您喜欢本书!