Oracle 12c PL/SQL程序设计终极指南

Oracle 12c PL/SQL程序设计终极指南
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: , ,
2015-06
版次: 1
ISBN: 9787111503286
定价: 99.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 705页
正文语种: 简体中文
26人买过
  •   《Oracle 12c PL/SQL程序设计终极指南》志在打造PL/SQL领域最为系统、全面、实战、权威的著作,通过一系列非常突出的优势在大量的同类书中脱颖而出,成为该领域的标准读物。  PL/SQL本身涉及的知识点浩瀚、庞杂,初学者根本无法依靠自身能力理清头绪,学习成本极高。本书对知识点进行了体系化的梳理,化繁杂为有序,突出重点,直指核心,循序渐进,尽可能为学习者提供“捷径”。仅仅只是这一点,本书就与同类书拉开了距离。本书以Oracle的最新版本12c为基础,呈现的是最新的PL/SQL技术,这一点也优于已出版的同类书。全书以一个综合性的人力资源项目为驱动,不仅能将各个理论知识点很好地融入实践,而且还能让读者体验完整的项目实操过程,“精讲多练”也是本书的一个重要特色,确保读者真正能学会。当然,最为重要的还是内容本身,本书首先对PL/SQL的理论基础进行了全面的介绍,其次详细讲解PL/SQL开发的所有功能模块、方法和技巧,最后对它的各种高级特性也进行了深入探讨。  国内关于PL/SQL的书很多,但是像本书这样以PL/SQL的最新版本为基础,以实际的项目为驱动,系统、全面、深入地讲解PL/SQL的书应该极少。本书旨在为所有初学者和工作中的Oracle数据库工程师提供关于PL/SQL的“终极参考”。  《Oracle 12c PL/SQL程序设计终极指南》具有下列特色:  项目驱动,侧重实战:全书以一个人力资管理系统开发为主线,根据项目开发的实际过程、实际需要介绍PL/SQL程序设计方法、技术、技巧,案例详实,包含了大量的代码与图例。  内容全面,注重实效:全书既介绍了PL/SQL基础知识和PL/SQL基本开发技术,供PL/SQL的初学者学习,也介绍了PL/SQL高级特性,供有一定开发经验的读者学习。全书强调“精讲多练”,压缩了不必要的理论介绍,侧重实际开发技术的训练,核心技术来源于实际应用与Oracle官方文档。读者也可以把本书作为参考手册进行查阅。  深入浅出,结构合理:全书按照PL/SQL程序设计的实际需要进行组织,分基础篇、开发篇、高级篇三篇。基础篇介绍了PL/SQL程序设计的基础知识,包括基本语法、控制结构、游标、异常处理等;开发篇介绍了PL/SQL程序最实用的开发技术,包括子程序、包、触发器、动态SQL、批绑定、子程序依赖性等;高级篇介绍了Oracle对象、LOB大对象、作业调度管理、性能优化以及PL/SQL内置包等高级特性。  推陈出新,技术先进:全书将Oracle 12c PL/SQL的最新特性融入整个知识体系,包括以调用者权限执行的函数可以进行结果缓存、更多的PL/SQL独有数据类型可以与SQL进行交互、使用ACCESSIBLE BY 短语进行访问控制、使用FETCH FIRST短语实现TOP-N查询、将角色授予PL/SQL包和独立子程序,等等。   孙风栋,资深Oracle数据库专家,从事Oracle数据库开发、管理、教学和培训10余年,对Oracle数据库系统有深入的研究和认识,积累了丰富的实战经验。领导并参与了包括多个国家自然科学基金项目在内的多个Oracle项目,负责Oracle数据库的架构、开发和管理工作。  此外,他还是一位经验丰富的技术作家,著有多部Oracle数据库相关的著作,深受读者欢迎。 前言
    基础篇
    第1章PL/SQL概述
    1.1什么是PL/SQL
    1.2PL/SQL优点
    1.3PL/SQL特性
    1.4PL/SQL运行机制
    1.4.1PL/SQL引擎
    1.4.2PL/SQL单元与编译参数
    1.5PL/SQL12.1新特性
    1.6案例数据库介绍
    1.6.1案例数据库表与序列
    1.6.2创建表与序列
    1.6.3向表中插入数据
    1.7使用Oracle文档
    1.8小结
    第2章PL/SQL开发工具的使用
    2.1SQLPlus
    2.1.1SQLPlus简介
    2.1.2SQLPlus的启动与退出
    2.1.3SQLPlus常用命令
    2.2SQLDeveloper
    2.2.1SQLDeveloper简介
    2.2.2创建数据库连接
    2.2.3浏览与管理数据库对象
    2.2.4执行SQL语句
    2.2.5开发PL/SQL程序
    2.2.6执行与调试PL/SQL程序
    2.3PL/SQLDeveloper
    2.3.1PL/SQLDeveloper简介
    2.3.2连接数据库
    2.3.3编写与运行PL/SQL程序
    2.3.4测试PL/SQL程序
    2.4小结
    第3章PL/SQL基础
    3.1PL/SQL程序结构
    3.1.1PL/SQL块结构
    3.1.2PL/SQL块分类
    3.2PL/SQL词法单元
    3.2.1字符集
    3.3.2标识符
    3.2.3分隔符
    3.2.4字面值
    3.2.5注释
    3.3PL/SQL数据类型
    3.3.1PL/SQL数据类型概述
    3.3.2字符类型
    3.3.3数字类型
    3.3.4日期/时间类型
    3.3.5布尔类型
    3.3.6复合类型
    3.3.7引用类型
    3.3.8LOB类型
    3.3.9%TYPE属性
    3.3.10%ROWTYPE属性
    3.4PL/SQL变量与常量
    3.4.1常量与变量的声明
    3.4.2变量作用域与可见性
    3.5运算符与表达式
    3.5.1运算符
    3.5.2表达式
    3.6编译指示
    3.7小结
    第4章PL/SQL控制语句
    4.1条件选择语句
    4.1.1IF语句
    4.1.2CASE语句
    4.2循环语句
    4.2.1简单循环语句
    4.2.2WHILE循环语句
    4.2.3FOR循环语句
    4.2.4CONTINUE语句
    4.3顺序控制语句
    4.3.1GOTO语句
    4.3.2NULL语句
    4.4小结
    第5章数据查询
    5.1SQL语言概述
    5.1.1SQL语言介绍
    5.1.2SQL语言的分类
    5.1.3SQL语言的特点
    5.2SELECT语句基本语法
    5.3简单查询
    5.3.1无条件查询
    5.3.2有条件查询
    5.4查询排序
    5.5分组查询
    5.5.1常用的聚集函数
    5.5.2分组查询的语法
    5.5.3单列分组查询
    5.5.4多列分组查询
    5.5.5使用HAVING子句
    5.5.6使用ROLLUP和CUBE子句
    5.5.7合并分组查询
    5.6连接查询
    5.6.1笛卡尔积连接
    5.6.2内连接
    5.6.3自然连接
    5.6.4使用USING子句的连接
    5.6.5外连接
    5.7子查询
    5.7.1子查询概述
    5.7.2单行单列子查询
    5.7.3多行单列子查询
    5.7.4单行多列子查询
    5.7.5多行多列子查询
    5.7.6相关子查询
    5.7.7在FROM子句中使用子查询
    5.7.8在DDL语句中使用子查询
    5.7.9使用WITH子句的子查询
    5.8层次查询
    5.8.1层次结构的概念
    5.8.2层次查询的语法
    5.8.3层次查询的执行过程
    5.8.4层次查询相关伪列
    5.9集合查询
    5.9.1UNION
    5.9.2UNIONALL
    5.9.3INTERSECT
    5.9.4MINUS
    5.10分析查询
    5.10.1分析查询概述
    5.10.2分析查询的语法
    5.10.3分析函数的应用
    5.11TOP-N与分页查询
    5.11.1Oracle12c之前的TOP-N与分页查询
    5.11.2Oracle12c中的TOP-N与分页查询
    5.12小结
    第6章数据操纵与事务控制
    6.1数据插入
    6.1.1数据插入介绍
    6.1.2INSERT语句的语法
    6.1.3插入单行记录
    6.1.4使用子查询插入数据
    6.1.5使用Direct-Path方法插入数据
    6.1.6无条件多表插入
    6.1.7有条件多表插入
    6.2数据修改
    6.2.1UPDATE语句的语法
    6.2.2使用子查询修改数据
    6.3MERGE语句
    6.4数据删除
    6.4.1DELETE语句的语法
    6.4.2使用子查询删除数据
    6.4.3使用TRUNCATE清除数据
    6.5事务控制
    6.5.1事务概述
    6.5.2Oracle事务的隔离级别
    6.5.3使用SETTRANSACTION语句设置事务
    6.5.4事务提交与回滚
    6.6锁
    6.6.1Oracle数据库中锁的分类
    6.6.2Oracle数据库中的DML锁
    6.6.3使用LOCKTABLE语句
    6.7小结
    第7章内置SQL函数
    7.1内置SQL函数概述
    7.2单行函数
    7.2.1数字函数
    7.2.2字符函数
    7.2.3日期函数
    7.2.4转换函数
    7.2.5空值函数
    7.2.6其他单行函数
    7.3聚集函数
    7.4分析函数
    7.5其他函数
    7.6小结
    第8章PL/SQL中的静态SQL语句
    8.1静态SQL语句概述
    8.1.1静态SQL语句类型
    8.1.2PL/SQL中的SELECT语句
    8.1.3PL/SQL中的DML语句
    8.1.4PL/SQL中的字符匹配
    8.2显式游标
    8.2.1游标概述
    8.2.2声明与定义显式游标
    8.2.3打开与关闭显式游标
    8.2.4检索显式游标
    8.2.5显式游标的属性
    8.2.6显式游标定义中的变量
    8.2.7参数化显式游标
    8.2.8FORUPDATE游标
    8.3隐式游标
    8.3.1隐式游标介绍
    8.3.2隐式游标的属性
    8.4游标变量
    8.4.1游标变量简介
    8.4.2声明游标变量
    8.4.3打开与关闭游标变量
    8.4.4检索游标变量
    8.5游标表达式
    8.6自治事务
    8.6.1自治事务的概念
    8.6.2声明自治程序
    8.6.3自治事务的控制
    8.6.4自治触发器
    8.7小结
    第9章记录
    9.1记录类型概述
    9.2声明记录类型
    9.3记录类型变量
    9.3.1声明记录类型变量
    9.3.2利用%ROWTYPE声明记录类型变量
    9.3.3记录类型变量赋值
    9.4记录类型变量的应用
    9.4.1记录类型变量在SELECT语句中的应用
    9.4.2记录类型变量在INSERT语句中的应用
    9.4.3记录类型变量在UPDATE语句中的应用
    9.4.4DML语句中记录类型变量使用的限制
    9.5小结
    第10章错误处理
    10.1编译警告
    10.2异常处理概述
    10.2.1Oracle错误处理机制
    10.2.2使用异常处理的优点
    10.3异常的类型
    10.3.1预定义异常
    10.3.2内部定义异常
    10.3.3用户定义异常
    10.4抛出异常
    10.4.1用户定义异常的抛出
    10.4.2预定义异常的抛出
    10.4.3内部定义异常的抛出
    10.4.4重新抛出当前异常
    10.4.5RAISE_APPLICATION_ERROR方法的使用
    10.5捕获与处理异常
    10.5.1异常处理器
    10.5.2OTHERS异常处理器
    10.6异常的传播
    10.6.1执行部分异常的传播
    10.6.2声明部分与异常处理部分异常的传播
    10.7异常处理策略
    10.7.1异常处理的基本原则
    10.7.2异常的范围
    10.7.3避免未处理的异常
    10.7.4异常与事务
    10.7.5错误位置标识
    10.8小结

    开发篇
    第11章PL/SQL子程序
    11.1PL/SQL子程序概述
    11.1.1PL/SQL子程序的概念与分类
    11.1.2PL/SQL子程序的优点
    11.2独立子程序
    11.2.1子程序结构
    11.2.2创建存储过程
    11.2.3创建函数
    11.3调用子程序
    11.3.1调用存储过程
    11.3.2在PL/SQL程序中调用函数
    11.3.3在SQL语句中调用函数
    11.4子程序参数
    11.4.1形式参数与实际参数
    11.4.2参数的传递方式
    11.4.3参数模式
    11.4.4NOCOPY关键字
    11.4.5参数的约束
    11.4.6IN模式参数默认值
    11.4.7无参子程序
    11.4.8实参与形参的对应关系
    11.5嵌套子程序
    11.5.1嵌套子程序的概念
    11.5.2嵌套子程序的创建
    11.5.3嵌套子程序的向前声明
    11.5.4嵌套子程序的重载
    11.6独立子程序的管理
    11.7小结
    第12章PL/SQL包
    12.1包概述
    12.1.1包的概念
    12.1.2包的分类
    12.1.3使用包的优点
    12.2创建包
    12.2.1包规范
    12.2.2包体
    12.3调用包
    12.4重载包
    12.5实例化与初始化包
    12.6包的纯度等级
    12.7包的状态
    12.7.1变量持续性
    12.7.2游标持续性
    12.7.3SERIALLY_REUSABLE包
    12.8包编写指南
    12.9STANDARD包
    12.10包管理
    12.11小结
    第13章子程序依赖性与权限管理
    13.1对象依赖性概述
    13.1.1对象依赖性的概念
    13.1.2对象依赖关系查询
    13.2子程序的本地依赖性
    13.2.1子程序的依赖关系
    13.2.2包的依赖性关系
    13.3子程序的远程依赖性
    13.3.1远程依赖关系的建立
    13.3.2远程依赖失效的识别
    13.4子程序权限概述
    13.4.1子程序调用需要的权限
    13.4.2子程序定义者需要的权限
    13.5调用者权限与定义者权限
    13.6小结
    第14章触发器
    14.1触发器简介
    14.1.1触发器的概念
    14.1.2触发器的作用
    14.1.3触发器的种类
    14.1.4触发器的结构
    14.2简单的DML触发器
    14.2.1简单DML触发器概述
    14.2.2语句级简单DML触发器
    14.2.3行级简单DML触发器
    14.2.4简单DML触发器的执行顺序
    14.3INSTEADOFDML触发器
    14.3.1INSTEADOFDML触发器概述
    14.3.2创建INSTEADOFDML触发器
    14.3.3基于视图嵌套表列的INST-EADOFDML触发器
    14.4复合DML触发器
    14.4.1复合DML触发器概述
    14.4.2创建复合DML触发器
    14.4.3复合DML触发器应用
    14.5利用DML触发器保证引用完整性
    14.6系统触发器
    14.6.1系统触发器的响应事件
    14.6.2创建系统触发器
    14.6.3事件属性函数
    14.7变异表触发器
    14.7.1变异表触发器的限制
    14.7.2变异表触发器应用
    14.8触发器设计指南
    14.9触发器管理
    14.9.1触发器定义的限制
    14.9.2触发器的禁用与激活
    14.9.3触发器的修改、重编译与删除
    14.9.4触发器的信息查询
    14.10小结
    第15章集合
    15.1集合概述
    15.2联合数组
    15.2.1联合数组概述
    15.2.2定义联合数组
    15.2.3操作联合数组
    15.3嵌套表
    15.3.1嵌套表概述
    15.3.2定义嵌套表
    15.3.3初始化嵌套表
    15.3.4操作嵌套表
    15.4可变数组
    15.4.1可变数组概述
    15.4.2可变数组的定义与初始化
    15.4.3操作可变数组
    15.5集合方法
    15.6集合类型变量的比较
    15.6.1集合类型变量与NULL的比较
    15.6.2嵌套表变量比较
    15.6.3嵌套表变量多集合条件比较
    15.7独立集合类型
    15.7.1嵌套表在数据库中的应用
    15.7.2可变数组在数据库中的应用
    15.8在包中定义的集合类型
    15.9多维集合
    15.10小结
    第16章动态SQL语句
    16.1动态SQL语句概述
    16.1.1动态SQL语句的概念
    16.1.2动态SQL语句与静态SQL语句的比较
    16.2本地动态SQL
    16.2.1EXECUTEIMMEDIATE语句
    16.2.2动态DDL操作
    16.2.3动态DCL操作
    16.2.4动态DML操作
    16.2.5动态单行查询操作
    16.2.6动态多行查询操作
    16.2.7在动态SQL语句中调用子程序
    16.2.8动态SQL语句中的重名占位符
    16.3DBMS_SQL包
    16.3.1DBMS_SQL包概述
    16.3.2DBMS_SQL包中方法介绍
    16.3.3DBMS_SQL操作流程
    16.3.4使用DBMS_SQL包执行动态DDL语句
    16.3.5使用DBMS_SQL包进行动态DML语句
    16.3.6使用DBMS_SQL包执行动态查询语句
    16.3.7使用DBMS_SQL包执行匿名块
    16.3.8其他常用DBMS_SQL方法应用
    16.4小结
    第17章批绑定
    17.1批绑定概述
    17.2FORALL语句
    17.2.1FORALL语句的语法
    17.2.2FORALL语句与FORLOOP语句比较
    17.2.3批量DML操作
    17.2.4使用稀疏集合的FORALL语句
    17.2.5FORALL语句的异常处理
    17.2.6获取FORALL语句影响的记录数量
    17.3BULKCOLLECT短语
    17.3.1SELECTBULKCOLLECT语句
    17.3.2FETCHBULKCOLLECT语句
    17.3.3RETURNINGBULKCOLLECT短语
    17.4动态批绑定
    17.4.1动态批量DML操作
    17.4.2动态批查询操作
    17.5小结

    高级篇
    第18章对象
    18.1Oracle对象概述
    18.1.1Oracle对象简介
    18.1.2使用Oracle对象的优势
    18.1.3Oracle数据库的对象特性
    18.2对象类型定义
    18.2.1对象类型规范
    18.2.2对象类型体
    18.3对象类型方法
    18.3.1MEMBER方法
    18.3.2STATIC方法
    18.3.3MAP与ORDER方法
    18.3.4构造方法
    18.4对象类型的继承
    18.4.1对象类型继承概述
    18.4.2FINAL与NOTFINAL对象类型与方法
    18.4.3创建子对象类型
    18.4.4方法重定义与重载
    18.4.5NOTINSTANTIABLE对象类型与方法
    18.5操作数据库中对象
    18.5.1创建对象表
    18.5.2操作对象表
    18.5.3操作列对象
    18.5.4对象引用
    18.6对象视图
    18.6.1对象视图概述
    18.6.2创建对象视图
    18.6.3在对象视图中嵌套对象
    18.6.4操作对象视图
    18.7在PL/SQL中使用对象类型
    18.7.1对象的声明与初始化
    18.7.2操作PL/SQL中的对象
    18.8与对象相关的函数和操作符
    18.9对象类型的管理
    18.9.1修改对象类型
    18.9.2删除对象类型
    18.10小结
    第19章大对象
    19.1大对象概述
    19.1.1为什么使用大对象
    19.1.2LOB与LONG的比较
    19.1.3LOB分类
    19.1.4LOB存储结构与定位器
    19.1.5LOB操作技术与接口
    19.2利用SQL操纵LOB对象
    19.2.1创建包含LOB列的数据库表
    19.2.2利用SQL操作内部LOB
    19.2.3利用SQL操作外部LOB
    19.3DBMS_LOB包
    19.3.1DBMS_LOB包简介
    19.3.2DBMS_LOB包中子程序介绍
    19.4利用PL/SQL操纵LOB对象
    19.4.1利用DBMS_LOB包操作CLOB对象
    19.4.2利用DBMS_LOB包操作BLOB对象
    19.4.3利用DBMS_LOB包操作BFILE对象
    19.5小结
    第20章Oracle任务调度
    20.1Oracle调度器概述
    20.1.1Oracle调度器的概念
    20.1.2调度对象
    20.2作业对象管理
    20.2.1创建作业对象
    20.2.2修改作业对象
    20.2.3运行作业对象
    20.2.4停止作业对象
    20.2.5删除作业对象
    20.2.6禁用作业对象
    20.2.7激活作业对象
    20.3程序对象管理
    20.4调度对象管理
    20.5小结
    第21章PL/SQL性能优化
    21.1PL/SQL性能优化简介
    21.2子程序内联
    21.3SQL语句优化
    21.3.1SQL语句优化概述
    21.3.2SQL语句执行过程
    21.3.3将常用程序驻留内存
    21.3.4有效使用索引
    21.3.5采用适当的多表连接技术
    21.3.6SQL语句使用技巧
    21.4最小化CPU载荷
    21.4.1优化查询中的函数调用
    21.4.2优化子程序调用
    21.4.3优化循环
    21.4.4优化用于计算的PL/SQL代码
    21.4.5使用SQL字符函数
    21.4.6批SQL与批绑定
    21.5管道函数的使用
    21.5.1表函数概述
    21.5.2创建管道表函数
    21.5.3管道表函数作为转换函数
    21.5.4检索管道表函数的返回结果集
    21.5.5向管道表函数传递游标表达式
    21.6性能优化工具
    21.6.1使用ProfilerAPI工具
    21.6.2使用TraceAPI工具
    21.6.3使用PL/SQLhierarchicalprofiler工具
    21.7小结
    第22章常用的Oracle内置包
    22.1Oracle内置包简介
    22.2DBMS_ALERT包
    22.3DBMS_DDL包
    22.4DBMS_FLASHBACK包
    22.5DBMS_METADATA包
    22.5.1DBMS_METADATA包简介
    22.5.2DBMS_METADATA包中子程序
    22.6DBMS_LOGMNR包
    22.7DBMS_LOGMNR_D包
    22.8DBMS_PIPE包
    22.8.1Oracle管道通信概述
    22.8.2DBMS_PIPE包中子程序
    22.9DBMS_RANDOM包
    22.10DBMS_ROWID包
    22.11DBMS_TRANSACTION包
    22.12UTL_FILE包
    22.13UTL_TCP包
    22.14小结
  • 内容简介:
      《Oracle 12c PL/SQL程序设计终极指南》志在打造PL/SQL领域最为系统、全面、实战、权威的著作,通过一系列非常突出的优势在大量的同类书中脱颖而出,成为该领域的标准读物。  PL/SQL本身涉及的知识点浩瀚、庞杂,初学者根本无法依靠自身能力理清头绪,学习成本极高。本书对知识点进行了体系化的梳理,化繁杂为有序,突出重点,直指核心,循序渐进,尽可能为学习者提供“捷径”。仅仅只是这一点,本书就与同类书拉开了距离。本书以Oracle的最新版本12c为基础,呈现的是最新的PL/SQL技术,这一点也优于已出版的同类书。全书以一个综合性的人力资源项目为驱动,不仅能将各个理论知识点很好地融入实践,而且还能让读者体验完整的项目实操过程,“精讲多练”也是本书的一个重要特色,确保读者真正能学会。当然,最为重要的还是内容本身,本书首先对PL/SQL的理论基础进行了全面的介绍,其次详细讲解PL/SQL开发的所有功能模块、方法和技巧,最后对它的各种高级特性也进行了深入探讨。  国内关于PL/SQL的书很多,但是像本书这样以PL/SQL的最新版本为基础,以实际的项目为驱动,系统、全面、深入地讲解PL/SQL的书应该极少。本书旨在为所有初学者和工作中的Oracle数据库工程师提供关于PL/SQL的“终极参考”。  《Oracle 12c PL/SQL程序设计终极指南》具有下列特色:  项目驱动,侧重实战:全书以一个人力资管理系统开发为主线,根据项目开发的实际过程、实际需要介绍PL/SQL程序设计方法、技术、技巧,案例详实,包含了大量的代码与图例。  内容全面,注重实效:全书既介绍了PL/SQL基础知识和PL/SQL基本开发技术,供PL/SQL的初学者学习,也介绍了PL/SQL高级特性,供有一定开发经验的读者学习。全书强调“精讲多练”,压缩了不必要的理论介绍,侧重实际开发技术的训练,核心技术来源于实际应用与Oracle官方文档。读者也可以把本书作为参考手册进行查阅。  深入浅出,结构合理:全书按照PL/SQL程序设计的实际需要进行组织,分基础篇、开发篇、高级篇三篇。基础篇介绍了PL/SQL程序设计的基础知识,包括基本语法、控制结构、游标、异常处理等;开发篇介绍了PL/SQL程序最实用的开发技术,包括子程序、包、触发器、动态SQL、批绑定、子程序依赖性等;高级篇介绍了Oracle对象、LOB大对象、作业调度管理、性能优化以及PL/SQL内置包等高级特性。  推陈出新,技术先进:全书将Oracle 12c PL/SQL的最新特性融入整个知识体系,包括以调用者权限执行的函数可以进行结果缓存、更多的PL/SQL独有数据类型可以与SQL进行交互、使用ACCESSIBLE BY 短语进行访问控制、使用FETCH FIRST短语实现TOP-N查询、将角色授予PL/SQL包和独立子程序,等等。
  • 作者简介:
      孙风栋,资深Oracle数据库专家,从事Oracle数据库开发、管理、教学和培训10余年,对Oracle数据库系统有深入的研究和认识,积累了丰富的实战经验。领导并参与了包括多个国家自然科学基金项目在内的多个Oracle项目,负责Oracle数据库的架构、开发和管理工作。  此外,他还是一位经验丰富的技术作家,著有多部Oracle数据库相关的著作,深受读者欢迎。
  • 目录:
    前言
    基础篇
    第1章PL/SQL概述
    1.1什么是PL/SQL
    1.2PL/SQL优点
    1.3PL/SQL特性
    1.4PL/SQL运行机制
    1.4.1PL/SQL引擎
    1.4.2PL/SQL单元与编译参数
    1.5PL/SQL12.1新特性
    1.6案例数据库介绍
    1.6.1案例数据库表与序列
    1.6.2创建表与序列
    1.6.3向表中插入数据
    1.7使用Oracle文档
    1.8小结
    第2章PL/SQL开发工具的使用
    2.1SQLPlus
    2.1.1SQLPlus简介
    2.1.2SQLPlus的启动与退出
    2.1.3SQLPlus常用命令
    2.2SQLDeveloper
    2.2.1SQLDeveloper简介
    2.2.2创建数据库连接
    2.2.3浏览与管理数据库对象
    2.2.4执行SQL语句
    2.2.5开发PL/SQL程序
    2.2.6执行与调试PL/SQL程序
    2.3PL/SQLDeveloper
    2.3.1PL/SQLDeveloper简介
    2.3.2连接数据库
    2.3.3编写与运行PL/SQL程序
    2.3.4测试PL/SQL程序
    2.4小结
    第3章PL/SQL基础
    3.1PL/SQL程序结构
    3.1.1PL/SQL块结构
    3.1.2PL/SQL块分类
    3.2PL/SQL词法单元
    3.2.1字符集
    3.3.2标识符
    3.2.3分隔符
    3.2.4字面值
    3.2.5注释
    3.3PL/SQL数据类型
    3.3.1PL/SQL数据类型概述
    3.3.2字符类型
    3.3.3数字类型
    3.3.4日期/时间类型
    3.3.5布尔类型
    3.3.6复合类型
    3.3.7引用类型
    3.3.8LOB类型
    3.3.9%TYPE属性
    3.3.10%ROWTYPE属性
    3.4PL/SQL变量与常量
    3.4.1常量与变量的声明
    3.4.2变量作用域与可见性
    3.5运算符与表达式
    3.5.1运算符
    3.5.2表达式
    3.6编译指示
    3.7小结
    第4章PL/SQL控制语句
    4.1条件选择语句
    4.1.1IF语句
    4.1.2CASE语句
    4.2循环语句
    4.2.1简单循环语句
    4.2.2WHILE循环语句
    4.2.3FOR循环语句
    4.2.4CONTINUE语句
    4.3顺序控制语句
    4.3.1GOTO语句
    4.3.2NULL语句
    4.4小结
    第5章数据查询
    5.1SQL语言概述
    5.1.1SQL语言介绍
    5.1.2SQL语言的分类
    5.1.3SQL语言的特点
    5.2SELECT语句基本语法
    5.3简单查询
    5.3.1无条件查询
    5.3.2有条件查询
    5.4查询排序
    5.5分组查询
    5.5.1常用的聚集函数
    5.5.2分组查询的语法
    5.5.3单列分组查询
    5.5.4多列分组查询
    5.5.5使用HAVING子句
    5.5.6使用ROLLUP和CUBE子句
    5.5.7合并分组查询
    5.6连接查询
    5.6.1笛卡尔积连接
    5.6.2内连接
    5.6.3自然连接
    5.6.4使用USING子句的连接
    5.6.5外连接
    5.7子查询
    5.7.1子查询概述
    5.7.2单行单列子查询
    5.7.3多行单列子查询
    5.7.4单行多列子查询
    5.7.5多行多列子查询
    5.7.6相关子查询
    5.7.7在FROM子句中使用子查询
    5.7.8在DDL语句中使用子查询
    5.7.9使用WITH子句的子查询
    5.8层次查询
    5.8.1层次结构的概念
    5.8.2层次查询的语法
    5.8.3层次查询的执行过程
    5.8.4层次查询相关伪列
    5.9集合查询
    5.9.1UNION
    5.9.2UNIONALL
    5.9.3INTERSECT
    5.9.4MINUS
    5.10分析查询
    5.10.1分析查询概述
    5.10.2分析查询的语法
    5.10.3分析函数的应用
    5.11TOP-N与分页查询
    5.11.1Oracle12c之前的TOP-N与分页查询
    5.11.2Oracle12c中的TOP-N与分页查询
    5.12小结
    第6章数据操纵与事务控制
    6.1数据插入
    6.1.1数据插入介绍
    6.1.2INSERT语句的语法
    6.1.3插入单行记录
    6.1.4使用子查询插入数据
    6.1.5使用Direct-Path方法插入数据
    6.1.6无条件多表插入
    6.1.7有条件多表插入
    6.2数据修改
    6.2.1UPDATE语句的语法
    6.2.2使用子查询修改数据
    6.3MERGE语句
    6.4数据删除
    6.4.1DELETE语句的语法
    6.4.2使用子查询删除数据
    6.4.3使用TRUNCATE清除数据
    6.5事务控制
    6.5.1事务概述
    6.5.2Oracle事务的隔离级别
    6.5.3使用SETTRANSACTION语句设置事务
    6.5.4事务提交与回滚
    6.6锁
    6.6.1Oracle数据库中锁的分类
    6.6.2Oracle数据库中的DML锁
    6.6.3使用LOCKTABLE语句
    6.7小结
    第7章内置SQL函数
    7.1内置SQL函数概述
    7.2单行函数
    7.2.1数字函数
    7.2.2字符函数
    7.2.3日期函数
    7.2.4转换函数
    7.2.5空值函数
    7.2.6其他单行函数
    7.3聚集函数
    7.4分析函数
    7.5其他函数
    7.6小结
    第8章PL/SQL中的静态SQL语句
    8.1静态SQL语句概述
    8.1.1静态SQL语句类型
    8.1.2PL/SQL中的SELECT语句
    8.1.3PL/SQL中的DML语句
    8.1.4PL/SQL中的字符匹配
    8.2显式游标
    8.2.1游标概述
    8.2.2声明与定义显式游标
    8.2.3打开与关闭显式游标
    8.2.4检索显式游标
    8.2.5显式游标的属性
    8.2.6显式游标定义中的变量
    8.2.7参数化显式游标
    8.2.8FORUPDATE游标
    8.3隐式游标
    8.3.1隐式游标介绍
    8.3.2隐式游标的属性
    8.4游标变量
    8.4.1游标变量简介
    8.4.2声明游标变量
    8.4.3打开与关闭游标变量
    8.4.4检索游标变量
    8.5游标表达式
    8.6自治事务
    8.6.1自治事务的概念
    8.6.2声明自治程序
    8.6.3自治事务的控制
    8.6.4自治触发器
    8.7小结
    第9章记录
    9.1记录类型概述
    9.2声明记录类型
    9.3记录类型变量
    9.3.1声明记录类型变量
    9.3.2利用%ROWTYPE声明记录类型变量
    9.3.3记录类型变量赋值
    9.4记录类型变量的应用
    9.4.1记录类型变量在SELECT语句中的应用
    9.4.2记录类型变量在INSERT语句中的应用
    9.4.3记录类型变量在UPDATE语句中的应用
    9.4.4DML语句中记录类型变量使用的限制
    9.5小结
    第10章错误处理
    10.1编译警告
    10.2异常处理概述
    10.2.1Oracle错误处理机制
    10.2.2使用异常处理的优点
    10.3异常的类型
    10.3.1预定义异常
    10.3.2内部定义异常
    10.3.3用户定义异常
    10.4抛出异常
    10.4.1用户定义异常的抛出
    10.4.2预定义异常的抛出
    10.4.3内部定义异常的抛出
    10.4.4重新抛出当前异常
    10.4.5RAISE_APPLICATION_ERROR方法的使用
    10.5捕获与处理异常
    10.5.1异常处理器
    10.5.2OTHERS异常处理器
    10.6异常的传播
    10.6.1执行部分异常的传播
    10.6.2声明部分与异常处理部分异常的传播
    10.7异常处理策略
    10.7.1异常处理的基本原则
    10.7.2异常的范围
    10.7.3避免未处理的异常
    10.7.4异常与事务
    10.7.5错误位置标识
    10.8小结

    开发篇
    第11章PL/SQL子程序
    11.1PL/SQL子程序概述
    11.1.1PL/SQL子程序的概念与分类
    11.1.2PL/SQL子程序的优点
    11.2独立子程序
    11.2.1子程序结构
    11.2.2创建存储过程
    11.2.3创建函数
    11.3调用子程序
    11.3.1调用存储过程
    11.3.2在PL/SQL程序中调用函数
    11.3.3在SQL语句中调用函数
    11.4子程序参数
    11.4.1形式参数与实际参数
    11.4.2参数的传递方式
    11.4.3参数模式
    11.4.4NOCOPY关键字
    11.4.5参数的约束
    11.4.6IN模式参数默认值
    11.4.7无参子程序
    11.4.8实参与形参的对应关系
    11.5嵌套子程序
    11.5.1嵌套子程序的概念
    11.5.2嵌套子程序的创建
    11.5.3嵌套子程序的向前声明
    11.5.4嵌套子程序的重载
    11.6独立子程序的管理
    11.7小结
    第12章PL/SQL包
    12.1包概述
    12.1.1包的概念
    12.1.2包的分类
    12.1.3使用包的优点
    12.2创建包
    12.2.1包规范
    12.2.2包体
    12.3调用包
    12.4重载包
    12.5实例化与初始化包
    12.6包的纯度等级
    12.7包的状态
    12.7.1变量持续性
    12.7.2游标持续性
    12.7.3SERIALLY_REUSABLE包
    12.8包编写指南
    12.9STANDARD包
    12.10包管理
    12.11小结
    第13章子程序依赖性与权限管理
    13.1对象依赖性概述
    13.1.1对象依赖性的概念
    13.1.2对象依赖关系查询
    13.2子程序的本地依赖性
    13.2.1子程序的依赖关系
    13.2.2包的依赖性关系
    13.3子程序的远程依赖性
    13.3.1远程依赖关系的建立
    13.3.2远程依赖失效的识别
    13.4子程序权限概述
    13.4.1子程序调用需要的权限
    13.4.2子程序定义者需要的权限
    13.5调用者权限与定义者权限
    13.6小结
    第14章触发器
    14.1触发器简介
    14.1.1触发器的概念
    14.1.2触发器的作用
    14.1.3触发器的种类
    14.1.4触发器的结构
    14.2简单的DML触发器
    14.2.1简单DML触发器概述
    14.2.2语句级简单DML触发器
    14.2.3行级简单DML触发器
    14.2.4简单DML触发器的执行顺序
    14.3INSTEADOFDML触发器
    14.3.1INSTEADOFDML触发器概述
    14.3.2创建INSTEADOFDML触发器
    14.3.3基于视图嵌套表列的INST-EADOFDML触发器
    14.4复合DML触发器
    14.4.1复合DML触发器概述
    14.4.2创建复合DML触发器
    14.4.3复合DML触发器应用
    14.5利用DML触发器保证引用完整性
    14.6系统触发器
    14.6.1系统触发器的响应事件
    14.6.2创建系统触发器
    14.6.3事件属性函数
    14.7变异表触发器
    14.7.1变异表触发器的限制
    14.7.2变异表触发器应用
    14.8触发器设计指南
    14.9触发器管理
    14.9.1触发器定义的限制
    14.9.2触发器的禁用与激活
    14.9.3触发器的修改、重编译与删除
    14.9.4触发器的信息查询
    14.10小结
    第15章集合
    15.1集合概述
    15.2联合数组
    15.2.1联合数组概述
    15.2.2定义联合数组
    15.2.3操作联合数组
    15.3嵌套表
    15.3.1嵌套表概述
    15.3.2定义嵌套表
    15.3.3初始化嵌套表
    15.3.4操作嵌套表
    15.4可变数组
    15.4.1可变数组概述
    15.4.2可变数组的定义与初始化
    15.4.3操作可变数组
    15.5集合方法
    15.6集合类型变量的比较
    15.6.1集合类型变量与NULL的比较
    15.6.2嵌套表变量比较
    15.6.3嵌套表变量多集合条件比较
    15.7独立集合类型
    15.7.1嵌套表在数据库中的应用
    15.7.2可变数组在数据库中的应用
    15.8在包中定义的集合类型
    15.9多维集合
    15.10小结
    第16章动态SQL语句
    16.1动态SQL语句概述
    16.1.1动态SQL语句的概念
    16.1.2动态SQL语句与静态SQL语句的比较
    16.2本地动态SQL
    16.2.1EXECUTEIMMEDIATE语句
    16.2.2动态DDL操作
    16.2.3动态DCL操作
    16.2.4动态DML操作
    16.2.5动态单行查询操作
    16.2.6动态多行查询操作
    16.2.7在动态SQL语句中调用子程序
    16.2.8动态SQL语句中的重名占位符
    16.3DBMS_SQL包
    16.3.1DBMS_SQL包概述
    16.3.2DBMS_SQL包中方法介绍
    16.3.3DBMS_SQL操作流程
    16.3.4使用DBMS_SQL包执行动态DDL语句
    16.3.5使用DBMS_SQL包进行动态DML语句
    16.3.6使用DBMS_SQL包执行动态查询语句
    16.3.7使用DBMS_SQL包执行匿名块
    16.3.8其他常用DBMS_SQL方法应用
    16.4小结
    第17章批绑定
    17.1批绑定概述
    17.2FORALL语句
    17.2.1FORALL语句的语法
    17.2.2FORALL语句与FORLOOP语句比较
    17.2.3批量DML操作
    17.2.4使用稀疏集合的FORALL语句
    17.2.5FORALL语句的异常处理
    17.2.6获取FORALL语句影响的记录数量
    17.3BULKCOLLECT短语
    17.3.1SELECTBULKCOLLECT语句
    17.3.2FETCHBULKCOLLECT语句
    17.3.3RETURNINGBULKCOLLECT短语
    17.4动态批绑定
    17.4.1动态批量DML操作
    17.4.2动态批查询操作
    17.5小结

    高级篇
    第18章对象
    18.1Oracle对象概述
    18.1.1Oracle对象简介
    18.1.2使用Oracle对象的优势
    18.1.3Oracle数据库的对象特性
    18.2对象类型定义
    18.2.1对象类型规范
    18.2.2对象类型体
    18.3对象类型方法
    18.3.1MEMBER方法
    18.3.2STATIC方法
    18.3.3MAP与ORDER方法
    18.3.4构造方法
    18.4对象类型的继承
    18.4.1对象类型继承概述
    18.4.2FINAL与NOTFINAL对象类型与方法
    18.4.3创建子对象类型
    18.4.4方法重定义与重载
    18.4.5NOTINSTANTIABLE对象类型与方法
    18.5操作数据库中对象
    18.5.1创建对象表
    18.5.2操作对象表
    18.5.3操作列对象
    18.5.4对象引用
    18.6对象视图
    18.6.1对象视图概述
    18.6.2创建对象视图
    18.6.3在对象视图中嵌套对象
    18.6.4操作对象视图
    18.7在PL/SQL中使用对象类型
    18.7.1对象的声明与初始化
    18.7.2操作PL/SQL中的对象
    18.8与对象相关的函数和操作符
    18.9对象类型的管理
    18.9.1修改对象类型
    18.9.2删除对象类型
    18.10小结
    第19章大对象
    19.1大对象概述
    19.1.1为什么使用大对象
    19.1.2LOB与LONG的比较
    19.1.3LOB分类
    19.1.4LOB存储结构与定位器
    19.1.5LOB操作技术与接口
    19.2利用SQL操纵LOB对象
    19.2.1创建包含LOB列的数据库表
    19.2.2利用SQL操作内部LOB
    19.2.3利用SQL操作外部LOB
    19.3DBMS_LOB包
    19.3.1DBMS_LOB包简介
    19.3.2DBMS_LOB包中子程序介绍
    19.4利用PL/SQL操纵LOB对象
    19.4.1利用DBMS_LOB包操作CLOB对象
    19.4.2利用DBMS_LOB包操作BLOB对象
    19.4.3利用DBMS_LOB包操作BFILE对象
    19.5小结
    第20章Oracle任务调度
    20.1Oracle调度器概述
    20.1.1Oracle调度器的概念
    20.1.2调度对象
    20.2作业对象管理
    20.2.1创建作业对象
    20.2.2修改作业对象
    20.2.3运行作业对象
    20.2.4停止作业对象
    20.2.5删除作业对象
    20.2.6禁用作业对象
    20.2.7激活作业对象
    20.3程序对象管理
    20.4调度对象管理
    20.5小结
    第21章PL/SQL性能优化
    21.1PL/SQL性能优化简介
    21.2子程序内联
    21.3SQL语句优化
    21.3.1SQL语句优化概述
    21.3.2SQL语句执行过程
    21.3.3将常用程序驻留内存
    21.3.4有效使用索引
    21.3.5采用适当的多表连接技术
    21.3.6SQL语句使用技巧
    21.4最小化CPU载荷
    21.4.1优化查询中的函数调用
    21.4.2优化子程序调用
    21.4.3优化循环
    21.4.4优化用于计算的PL/SQL代码
    21.4.5使用SQL字符函数
    21.4.6批SQL与批绑定
    21.5管道函数的使用
    21.5.1表函数概述
    21.5.2创建管道表函数
    21.5.3管道表函数作为转换函数
    21.5.4检索管道表函数的返回结果集
    21.5.5向管道表函数传递游标表达式
    21.6性能优化工具
    21.6.1使用ProfilerAPI工具
    21.6.2使用TraceAPI工具
    21.6.3使用PL/SQLhierarchicalprofiler工具
    21.7小结
    第22章常用的Oracle内置包
    22.1Oracle内置包简介
    22.2DBMS_ALERT包
    22.3DBMS_DDL包
    22.4DBMS_FLASHBACK包
    22.5DBMS_METADATA包
    22.5.1DBMS_METADATA包简介
    22.5.2DBMS_METADATA包中子程序
    22.6DBMS_LOGMNR包
    22.7DBMS_LOGMNR_D包
    22.8DBMS_PIPE包
    22.8.1Oracle管道通信概述
    22.8.2DBMS_PIPE包中子程序
    22.9DBMS_RANDOM包
    22.10DBMS_ROWID包
    22.11DBMS_TRANSACTION包
    22.12UTL_FILE包
    22.13UTL_TCP包
    22.14小结
查看详情
系列丛书 / 更多
Oracle 12c PL/SQL程序设计终极指南
Redis设计与实现
黄健宏 著
Oracle 12c PL/SQL程序设计终极指南
MySQL技术内幕:InnoDB存储引擎(第2版)
姜承尧 著
Oracle 12c PL/SQL程序设计终极指南
Redis开发与运维
付磊、张益军 著
Oracle 12c PL/SQL程序设计终极指南
Oracle高性能自动化运维
冷菠 著
Oracle 12c PL/SQL程序设计终极指南
MySQL DBA修炼之道
陈晓勇 编
Oracle 12c PL/SQL程序设计终极指南
mysql管理之道:性能调优、高可用与监控
贺春旸 著
Oracle 12c PL/SQL程序设计终极指南
MySQL技术内幕:InnoDB存储引擎
姜承尧 著
Oracle 12c PL/SQL程序设计终极指南
PostgreSQL修炼之道:从小工到专家
唐成 著
Oracle 12c PL/SQL程序设计终极指南
Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南
孙风栋、王澜 著
Oracle 12c PL/SQL程序设计终极指南
数据模型资源手册(卷1)(修订版)
希尔瓦斯顿、林友芳 著
Oracle 12c PL/SQL程序设计终极指南
DBA修炼之道:数据库管理员的第一本书(原书第2版)
[美]穆林斯(Craig S. Mullins) 著;褚晓霞 译
Oracle 12c PL/SQL程序设计终极指南
构建最高可用Oracle数据库系统:Oracle 11gR2 RAC管理、维护与性能优化
刘炳林 著