内 容 简 介SQL是关系数据库的基本操作语言。它主要包括数据查询、数据操纵、数据定义等功能,是应用程序与数据库进行交互操作的接口。PL/SQL是Oracle特有的编程语言,它可以像其他高级编程语言一样,编写出各种完成数据库操作功能的程序。由于PL/SQL由Oracle系统本身编译执行,所以程序运行效率更高。本书为Oracle数据库应用开发人员提供了SQL使用指南和PL/SQL编程技术。通过对本书的学习,读者不仅可以掌握SQL和PL/SQL的基础知识,还可以掌握Oracle 11g SQL和PL/SQL的许多高级特征。本书的编写既考虑了SQL和PL/SQL的初学者,同时也兼顾到了有经验的PL/SQL编程人员,因此本书可作为高等院校计算机相关专业的辅助教材,也可作为各类高级数据库编程人员的参考书,还可以作为Oracle 11g培训班的教材。
前 言Oracle数据库是世界领先、性能优异的大型数据库管理系统,凭借极大的并发处理数据量,极高的可靠性、安全性和可扩展性赢得了广大高端用户的青睐,广泛应用于金融、通信、航空等领域。Oracle数据库早期主要应用于UNIX操作系统,影响了它的广泛应用。而在Oracle公司提供了基于Windows平台的Oracle版本以后,Oracle数据库在国内外拥有了更为广泛的应用市场。近些年来,随着国内中小企业对数据库可靠性、安全性要求的提高,基于Windows平台的Oracle数据库服务器获得了广泛青睐。随之而来,对Oracle数据库管理和开发人员的数量需求的不断增加,素质要求不断提高。本书的编写既考虑了Oracle数据库管理和开发的初学者,同时也兼顾到了有一定基础的管理和开发人员。凡是想学习SQL语句或利用PL/SQL提高Oracle数据库管理和开发能力的人士,都可以从本书获得借鉴。本书分3个部分共12章。其中第1部分对Oracle 11g数据库进行了概述,第2部分用大量范例详解了SQL语句,第3部分精选出了可供借鉴的PL/SQL编程实例。各部分具体内容如下。第1部分为第1~3章,主要内容包括:数据库及Oracle 11g的产生与发展、数据库分类、SQL和PL/SQL简介、SQL和PL/SQL开发环境简介、本书中使用的数据库的建立。第1部分为全书作了必要的铺垫,建立了本书中使用的数据库,详细地介绍了SQL语句和PL/SQL编程调试开发环境。第2部分为第4~9章,主要内容包括:数据查询语句(SELECT-Query Statements);数据操纵语言(Data Manipulation Language,DMI),其中包括INSERT语句、UPDATE语句、DELETE语句;事务控制语句(Transaction Control Statements,TC),其中包括COMMIT语句、ROLLBACK语句、SAVEPOINT语句;数据控制语言(Data Control Language,DCL),其中包括GRANT语句、REVOKE语句;数据定义语言(Data Definition Language,DDL),其中包括CREATE语句、ALTER语句、DROP语句、RENAME语句、TRUNCATE语句。对于上述各种类型的SQL语句的讲述,书中均结合范例数据库给出了详细的说明。第3部分为第10~12章,主要包括两方面内容:一是PL/SQL程序设计基础知识;二是PL/SQL高级编程特性。前者包括PL/SQL程序基本结构(顺序、分支、循环),以及异常处理、游标等。后者包括复合数据类型、构成PL/SQL程序的基本模块(过程、函数、包),以及触发器等。对于PL/SQL程序设计的讲述,书中均结合范例数据库给出了详尽的实例。读者可访问清华大学出版社网站(http://www.tup.tsinghua.org.cn)下载本书范例程序的全部源代码。本书由薛贵军、周振江、梁大为编著,其中薛贵军编写了第1、3、8~12章;周振江编写了第2、4、5章;梁大为编写了第6、7章,并负责全书的统稿工作。由于编者水平有限,本书难免有不足之处,恳请广大读者批评指正!编 者
目 录
第1章 Oracle简介1.1 数据库的产生与发展1.1.1 数据管理技术的产生与发展1.1.2 数据库技术的发展1.1.3 关系数据库产品简介1.2 Oracle的产生与发展1.3 Oracle 11g简介1.3.1 Oracle 数据库系统的特点1.3.2 Oracle版本号的含义1.3.3 Oracle 11g的新特性第2章 数据库的建立2.1 数据库的逻辑设计2.1.1 关系数据库设计基础2.1.2 关系数据库规范化2.2 数据库的物理设计2.3 数据库实施2.4 创建数据库2.4.1 数据库创建前的准备2.4.2 安装数据库服务器并创建
数据库第3章 SQL与PL/SQL概述3.1 SQL与PL/SQL简介3.1.1 SQL简介3.1.2 PL/SQL简介3.2 SQL*Plus 简介3.3 范例数据库表的建立3.3.1 Oracle 11g基本数据类型3.3.2 定义表的结构3.3.3 查看表结构3.3.4 删除表3.3.5 添加数据3.3.6 查看数据3.3.7 删除数据第4章 单表查询4.1 简单查询4.1.1 查询指定列4.1.2 改变输出4.1.3 空值处理4.2 条件查询4.2.1 单一条件查询4.2.2 复合条件查询4.3 记录排序4.3.1 按单一列排序4.3.2 按多列排序4.4 分组查询4.4.1 列函数及其应用4.4.2 GROUP BY子句4.4.3 HAVING子句第5章 子查询与集合操作5.1 子查询5.1.1 单行子查询5.1.2 多行子查询5.1.3 多列子查询5.1.4 相关子查询5.1.5 嵌套子查询5.2 集合操作5.2.1 使用集合操作符5.2.2 集合操作的进一步讨论第6章 连接查询6.1 内连接查询6.1.1 简单内连接查询6.1.2 复杂内连接查询6.2 外连接查询6.2.1 左外连接查询6.2.2 右外连接查询6.2.3 全外连接查询6.3 其他特殊连接查询6.3.1 交叉连接查询6.3.2 自连接查询第7章 数据操纵语言与事务处理7.1 数据操纵语言7.1.1 插入数据7.1.2 更新数据7.1.3 删除数据7.1.4 数据库完整性7.1.5 含有子查询的DML语句7.2 数据事务处理7.2.1 显式处理事务7.2.2 隐式处理事务7.2.3 特殊事务第8章 SQL函数8.1 数字函数8.1.1 数字函数概述8.1.2 数字函数示例8.2 字符函数8.2.1 字符函数概述8.2.2 字符函数示例8.3 日期时间函数8.3.1 日期时间函数概述8.3.2 日期时间函数示例8.4 转换函数8.4.1 转换函数概述8.4.2 转换函数示例第9章 数据控制语言与数据定义
语言9.1 数据控制语言9.1.1 数据库权限9.1.2 权限控制9.2 表9.2.1 建立表9.2.2 获得表的相关信息9.2.3 修改表定义9.2.4 修改表名9.2.5 删除表9.3 索引9.3.1 建立索引9.3.2 获得索引信息9.3.3 修改索引名字9.3.4 删除索引9.4 视图9.4.1 建立视图9.4.2 使用视图9.4.3 获得视图定义信息9.4.4 修改视图9.4.5 删除视图第10章 PL/SQL编程基础10.1 PL/SQL基础10.1.1 PL/SQL块简介10.1.2 PL/SQL基本语法要素10.1.3 变量及其数据类型10.2 在PL/SQL中执行SQL语句10.2.1 执行SELECT语句10.2.2 执行DML语句10.2.3 执行事务控制语句10.3 PL/SQL程序控制结构10.3.1 顺序结构10.3.2 分支结构10.3.3 循环结构10.3.4 GOTO语句与NULL
语句10.4 异常处理10.4.1 异常的基本概念10.4.2 系统异常处理10.4.3 自定义异常处理10.4.4 使用异常函数10.5 游标10.5.1 游标应用基础10.5.2 游标的基本应用10.5.3 游标FOR循环10.5.4 游标的复杂应用第11章 复合数据类型11.1 记录类型11.1.1 定义记录11.1.2 在SELECT语句中使用
记录11.1.3 在DML中使用记录11.2 记录表类型11.2.1 定义记录表11.2.2 使用记录表11.3 联合数组类型11.3.1 定义联合数组11.3.2 使用联合数组11.4 嵌套表类型11.4.1 定义嵌套表11.4.2 使用嵌套表11.5 变长数组类型11.5.1 定义变长数组11.5.2 使用变长数组类型11.6 集合操作11.6.1 集合属性与方法11.6.2 使用集合操作符第12章 应用程序结构12.1 子程序12.1.1 过程12.1.2 函数12.2 包12.2.1 定义包12.2.2 包的管理12.2.3 调用包12.2.4 包中子程序的重载12.3 触发器12.3.1 概述12.3.2 DML触发器12.3.3 INSTEAD OF触发器12.3.4 系统事件触发器