第2版 Oracle PL/SQL宝典


第2版 Oracle PL/SQL宝典

文章插图
Oracle PL/SQL宝典(第2版)【第2版 Oracle PL/SQL宝典】《Oracle PL/SQL宝典(第2版)》是电子工业出版社出版的图书,作者是赵越 。
基本介绍书名:Oracle PL/SQL宝典(第2版)
作者:赵越
ISBN:7121214938
页数:524页
出版社:电子工业出版社
装帧:平装
语种:简体中文
内容简介Oracle PL/SQL宝典(第2版)作者结合多年的Oracle开发经验和心得体会,花费了一年多的时间写作本书,希望各位读者能在本书的引领下学习PL/SQL语言 。本书全面、系统、深入地介绍了PL/SQL语言的开发技术,并以大量实例贯穿于全书的讲解之中,还详细介绍了如何对资料库进行管理、备份与恢复以及性能最佳化,最后讲解了Oracle的套用系统项目案例 。学习完本书后,读者应该可以更加全面地掌握PL/SQL语言 。目录第1篇 PL/SQL简介第1章 走进Oracle 21.1 资料库系统与数据模型 21.1.1 基本术语 21.1.2 资料库技术的发展 31.1.3 数据模型 51.2 资料库系统的体系结构 61.2.1 资料库系统的三级模式 61.2.2 资料库管理系统 71.2.3 资料库系统的工作流程 81.3 关係资料库的简单介绍 91.3.1 关係资料库的基本特性 101.3.2 关係资料库的设计规範 101.4 认识Oracle 11g R2 111.4.1 什幺是Oracle 11g R2 111.4.2 Oracle的发展历程 121.4.3 Oracle 11g R2的新特性 131.5 小结 13第2章 认识PL/SQL 142.1 SQL语言概述 142.2 什幺是PL/SQL 192.3 PL/SQL在SQL*Plus中的使用 262.3.5 SQL*Plus删除命令 312.3.6 SQL*Plus清除缓冲区命令 322.3.7 SQL*Plus显示缓冲区内容命令 332.3.8 SQL*Plus保存命令 342.3.9 查询结果的格式化 362.3.10 注释的使用 432.3.11 在SQL*Plus中编辑语句 442.4 PL/SQL在SQL Developer中的使用 452.5 小结 47第2篇 PL/SQL基础第3章 数据表的基本操作 503.1 创建表 503.1.3 创建表实例 523.2 约束 543.2.1 约束的类型 553.2.2 创建一个带检查约束的表 553.2.3 创建一个带非空约束的表 563.2.4 创建一个带唯一约束的表 573.2.5 创建一个带外键约束的表 583.2.6 创建一个含多个约束的表 613.3 修改表 623.3.2 给表添加约束 653.3.3 删除表中的约束 663.4 删除表 673.5 重命名表 673.6 使用企业管理器操作表 673.6.1 启用企业管理器 683.6.2 使用企业管理器创建表 693.6.4 使用企业管理器删除表 743.7 小结 75第4章 表中数据的基本操作 764.1 查询数据表 764.1.1 查询表中的数据 764.1.2 使用SQL Developer工具查询表中的数据 774.2 添加数据 794.2.1 添加操作的基本语法 794.2.2 直接向表中添加数据 804.2.3 数据中NULL值的处理 824.2.4 插入值是默认值的处理 844.2.5 插入值是唯一值的处理 854.2.6 使用INSERT...SELECT插入数据 864.2.7 使用SQL Developer工具添加数据 874.3 修改数据 884.3.1 修改操作的基本语法 884.3.2 使用UPDATE语句更新数据行 894.3.3 根据条件修改表中的数据 914.3.4 使用SQL Developer工具修改数据 914.4 删除数据 914.4.1 删除操作的基本语法 914.4.2 删除表中的数据 924.4.3 有关TRUNCATE的使用 924.4.4 使用SQL Developer工具删除数据 944.5 小结 94第5章 数据的基本查询 955.1 查询语句的基础 955.1.1 查询语句语法 955.1.2 查询各关键字的顺序及功能 965.1.3 查询语句执行顺序 965.2 最容易理解的查询 975.2.1 增加实验数据 975.2.2 查询表中列的数据 995.2.3 查询所有列 1015.2.4 去除查询结果中的重複记录 1025.2.5 返回查询的部分数据 1045.3 带条件的查询 1045.3.1 单一的条件查询 1055.3.2 查询中使用比较表达式 1065.3.3 使用简单逻辑表达式 1085.3.4 有关NULL值的判断 1145.3.5 有关模糊查询 1155.3.6 指定数据範围 1205.3.7 如何限制检索数据範围 1225.3.8 定义转义符 1235.4 排序查询结果 1255.4.1 基本排序 1255.4.2 多列排序 1295.5 PL/SQL中的运算符 1315.5.1 算术运算符 1325.5.2 比较运算符 1325.5.3 逻辑运算符 1325.5.4 字元串连线符 1335.5.5 赋值运算符 133 5.5.6 运算符的优先权 1335.6 查询中表达式的使用 1345.6.1 使用连线符连线列 1345.6.2 算术表达式的使用 1365.7 小结 137第6章 查询中函式的使用 1386.1 常用的单行函式 1386.1.1 字元处理函式 1386.1.2 数值处理函式 1436.1.3 日期处理函式 1466.1.4 转换函式 1496.1.5 替换NULL值函式 1516.1.6 排除指定条件函式 1526.2 聚合函式 1526.2.1 聚合函式的种类 1526.2.2 计数函式 1536.2.3 求和函式 1556.2.4 均值函式 1566.2.5 最大值/最小值函式 1586.2.6 统计函式 1606.2.7 聚合函式的重值处理 1616.3 分组查询 1626.3.1 简单分组 1626.3.2 多列分组 1636.3.3 分组查询中NULL值的处理 1646.3.4 汇总数据运算符 1656.3.5 筛选分组结果 1686.4 其他函式 1706.4.1 返回登录名函式 1706.4.2 返回SESSIONID和LANGUAGE函式 1706.4.3 数据匹配函式 1716.5 小结 172第7章 查询中特殊的转换函式 1737.1 基本的转换函式 1737.1.1 数据类型的自动转换 1737.1.2 关于自动转换的注意事项 1767.2 特殊的转换函式 1777.3 变换函式 1787.3.1 TRANSLATE函式 1787.3.2 DECODE函式 1807.4 小结 182第8章 数据表的高级查询 1838.1 理解什幺是多表连线 1838.1.1 什幺是连线 1838.1.2 连线的类型与实现 1848.2 简单的多表查询 1848.2.1 创建实例表 1858.2.2 如何实现多表查询 1868.2.3 指定连线条件 1878.2.4 使用别名作为表名的简写 1888.2.5 自连线表进行查询 1898.3 表的连线查询 1928.3.1 基本连线语法 1938.3.2 内部连线 1938.3.3 自然连线 1968.3.4 外部连线 1988.3.5 交叉连线 2038.3.6 连线中空值问题 2048.3.7 表的连线与聚合分析 2068.4 集合运算 2088.4.1 集合运算的种类 2088.4.2 UNION的使用 2088.4.3 有关多表的UNION操作 2118.4.4 UNION与JOIN的区别 2128.4.5 MINUS与INTERSECT的使用 2138.5 子查询的使用 2178.5.1 认识子查询 217 8.5.2 非相关子查询与相关子查询 2178.5.3 子查询的组成 2198.5.4 子查询的使用方式及限制 2208.6 在子查询中使用各种限制条件 2208.6.1 比较运算符引入子查询 2218.6.2 子查询中的聚合函式 2238.6.3 在子查询中使用IN 2248.7 在子查询中使用EXISTS 2278.7.1 使用EXISTS的子查询 2288.7.2 EXISTS子查询的使用 2298.7.3 使用EXISTS子查询检查表中的重複行 2308.8 子查询的其他套用 2318.8.1 在子查询中使用ROWNUM关键字 2318.8.2 在SELECT子句中使用子查询 2348.8.3 在HAVING子句中使用子查询 2358.8.4 在数据操纵语言(DML)中使用子查询 2368.9 小结 238第3篇 PL/SQL高级技术第9章 索引和视图的使用 2409.1 索引及其操作 2409.1.1 什幺是索引 2409.1.2 索引的种类及语法 2409.1.3 索引的创建 2419.1.4 创建索引的注意事项 2469.1.5 索引的管理 2469.2 视图及其套用 2509.2.1 什幺是视图 2509.2.2 视图的作用 2519.3 创建视图 2519.3.1 视图的语法 2519.3.2 创建单表视图 2529.3.3 创建多表视图 2539.3.4 视图的视图 2549.3.5 无源表视图 2559.3.6 设定视图唯读 2559.3.7 设定视图的检查约束 2579.3.8 内嵌视图的使用 2599.3.9 查询视图的定义和相关信息 2599.4 修改、删除视图 2609.4.1 修改视图内容 2609.4.2 删除视图 2619.5 小结 262第10章 序列 26310.1 创建序列 26310.2 使用序列 26510.3 序列属性 26910.3.1 创建序列的注意事项 26910.3.2 指定序列的初始值 26910.3.3 序列的最大值和最小值 27010.3.4 序列的步长 27110.3.5 序列的循环取值 27210.3.6 序列的快取大小 27310.4 小结 274第11章 数据类型、流程控制和游标 27511.1 PL/SQL数据类型 27511.1.1 标量类型 27511.1.2 複合类型 27611.2 变数和常量 284 11.2.1 变数的声明语法 28411.2.2 常量的声明语法 28511.3 程式流控制语句 28511.3.1 IF...ELSE条件选择结构 28611.3.2 CASE条件控制语句 29111.3.3 LOOP循环控制语句 29511.4 游标 30011.4.1 游标的概念 30111.4.2 显式游标的定义和操作 30211.4.3 显式游标的属性 30611.4.4 隐式游标 30811.5 小结 311第12章 存储过程、函式 31212.1 理解存储过程 31212.1.1 认识存储过程 31212.1.2 存储过程的优点 31212.1.3 存储过程的语法 31312.2 存储过程的创建和执行 31312.2.1 存储过程的执行 31312.2.2 创建无参数的存储过程 31412.2.3 带有输入参数的存储过程 31812.2.4 带有输出参数的存储过程 32112.3 存储过程的管理 32312.3.1 查看存储过程 32312.3.2 查看存储过程的错误 32412.3.3 修改存储过程 32612.3.4 存储过程的重新编译 32612.3.5 删除存储过程 32712.4 函式 32712.4.1 函式的组成和语法 32712.4.2 创建无参数函式 32812.4.3 创建有参数函式 33012.4.4 查看函式 33512.4.5 修改函式 33612.4.6 重新编译函式 33712.4.7 删除函式 33812.5 小结 338第13章 程式包 33913.1 程式包简介 33913.2 构建程式包的规则 33913.2.1 程式包规範 33913.2.2 程式包主体 34113.3 调用程式包中的函式/存储过程 34313.4 删除程式包 34313.5 小结 344第14章 触发器 34514.1 触发器的基本概念 34514.1.1 触发器简介 34514.1.2 触发器的类型 34514.1.3 触发器的作用及使用 34614.1.4 触发器的执行环境 34614.2 触发器的创建和使用 34714.2.1 触发器的语法和组成 34714.2.2 创建DML触发器 34914.2.3 替代类型触发器 36014.2.4 複合类型触发器 36214.2.5 DDL类型触发器 36414.3 触发器管理 36614.3.1 查看触发器 36614.3.2 修改触发器 36714.3.3 删除触发器 36914.4 小结 370第15章 异常处理 371 15.1 理解异常 37115.1.1 异常的分类 37115.1.2 异常的结构 37215.2 异常的套用 37215.2.1 预定义异常 37315.2.2 非预定义异常 37715.2.3 自定义异常 37915.3 小结 380第16章 事务和锁 38116.1 事务控制的基本概念 38116.1.1 事务控制的必要性 38116.1.2 事务的ACID特性及实现 38216.1.3 事务的状态 38216.1.4 PL/SQL中事务的执行 38316.2 PL/SQL中事务的实现 38416.2.1 事务的类型 38416.2.2 提交事务 38516.2.3 设定事务的保存点 38716.3 并发控制及其实现 38816.3.1 并发访问的常见问题 38916.3.2 什幺是锁 39016.3.3 锁的分类 39016.3.4 事务隔离级别 39216.3.5 事务阻塞及其解决方法 39416.3.6 死锁 39616.4 小结 398第17章 安全管理 39917.1 用户管理 39917.1.1 什幺是用户 39917.1.2 创建用户 39917.1.3 修改用户 40517.1.4 删除用户 40717.2 许可权管理 40917.2.1 授予许可权 40917.2.2 许可权回收 41317.2.3 查看许可权 41517.3 角色管理 41617.3.1 理解角色 41617.3.2 创建角色 41717.3.3 角色的管理设定 41917.3.4 修改、删除角色 42017.4 概要档案(PROFILE) 42117.4.1 理解概要档案 42117.4.2 创建概要档案 42117.4.3 修改、删除概要档案 42417.4.4 查询概要档案 42517.5 小结 426第18章 动态SQL和动态PL/SQL 42718.1 动态SQL 42718.1.1 EXECUTE IMMEDIATE语句 42718.1.2 OPEN FOR语句 42818.1.3 4种动态SQL方法 42918.2 动态PL/SQL 43118.3 小结 431第19章 管理PL/SQL代码 43219.1 管理资料库中的代码 43219.1.1 数据字典视图概述 43219.1.2 显示存储对象的信息 43319.1.3 原始码的显示和搜寻 43419.1.4 通过数据字典视图查看编译器属性 43419.1.5 通过视图分析和更改触发器的状态 436 19.1.6 分析参数信息 43719.2 依赖关係的管理和代码的重编译 43719.2.1 通过数据字典视图查看依赖关係 43719.2.2 失效的程式单元的重编译 43819.3 编译时警告 43919.4 PL/SQL程式的执行和调试 44119.4.1 PL/SQL程式的执行 44119.4.2 PL/SQL程式的调试 44219.4.3 调试技巧和策略 44219.5 I/O操作与PL/SQL 44619.5.1 显示信息 44619.5.2 启用DBMS_OUTPUT 44619.6 套用安全与PL/SQL 44819.7 小结 449第20章 PL/SQL语句最佳化 45020.1 一般的SQL技巧 45020.1.1 在查询中儘量不使用“*” 45020.1.2 多表查询时多使用别名 45020.1.3 条件查询多使用WHERE 45120.1.4 计算时不用索引列 45120.1.5 指定查询範围时多使用IN 45220.1.6 使用TRUNCATE清空表中记录 45320.1.7 及时提交事务 45320.1.8 DECODE函式的使用 45420.1.9 多使用EXISTS语句判断条件 45520.1.10 其他技巧 45520.2 Oracle最佳化器 45620.2.1 Oracle最佳化器的分类 45620.2.2 Oracle最佳化器的模式 45720.2.3 查看Oracle执行计画 45720.3 SQL性能指导 45820.3.1 ADDM 45820.3.2 SQL访问指导 45820.3.3 SQL最佳化指导 46220.4 小结 462第21章 备份与恢复 46321.1 备份与恢复简介 46321.1.1 备份 46321.1.2 恢复 46321.2 逻辑备份与恢复 46321.2.1 使用expdp和impdp工具进行逻辑备份与恢复 46321.2.2 使用OEM进行逻辑备份与恢复 46621.3 脱机备份与恢复 47521.3.1 脱机备份 47521.3.2 脱机恢复 47621.4 在线上备份与恢复 47621.4.1 使用RMAN管理备份与恢复 47721.4.2 恢复 47921.5 小结 482第4篇 Oracle套用开发第22章 在.NET中连线Oracle资料库 48422.1 ADO.NET概述 48422.1.1 什幺是ADO.NET 48422.1.2 ADO.NET中的对象 484 22.2 使用绑定的方式连线Oracle资料库 48522.2.1 数据控制项概述 48522.2.2 使用DataGridView控制项绑定Oracle资料库 48622.3 使用代码的方式连线Oracle资料库 49222.3.1 使用Command对象操作Oracle资料库 49222.3.2 使用DataSet对象存储查询结果 49422.3.3 商品信息存储实例 49522.4 小结 499第23章 在Java中连线Oracle资料库 50023.1 JDBC与ODBC简介 50023.1.1 什幺是JDBC 50023.1.2 什幺是ODBC 50123.2 使用Thin方式连线Oracle资料库 50223.3 使用JDBC-ODBC桥连线Oracle资料库 51023.3.1 配置ODBC数据源 51023.3.2 连线Oracle资料库 51323.4 小结 513前言Oracle 11g R2是一款优秀的关係型资料库,广泛地套用在各行各业中 。Oracle资料库产品具有较好的安全性、稳定性和优异的性能,占领了资料库市场的大部分份额 。要使用Oracle设计应用程式,就要学习Oracle自己的语言——PL/SQL语言 。PL/SQL语言不仅能在Oracle内部使用,还能在自己的应用程式中使用 。多种Oracle操作工具如SQL Developer、SQL*Plus中都可以使用PL/SQL语言 。尤其是在编写应用程式时如果使用Oracle资料库,则学习PL/SQL更是至关重要的 。本书特色1.涵盖PL/SQL编程的各种语法本书涵盖了使用PL/SQL建表、操作表中的数据、PL/SQL的流程控制语句、存储过程和函式、触发器、游标、用户管理等PL/SQL编程语法的讲解 。2.示例驱动,学习性强本书每章都提供了大量的示例,在完成这些示例的同时读者也能更快地学习和掌握PL/SQL语言的使用 。此外,这些示例全部在真实环境中演练过并截取效果图,使读者学习起来很方便 。3.讲解由浅入深,循序渐进,适合各个层次的读者阅读本书从PL/SQL的基础开始讲解,逐步深入到PL/SQL的高级开发技术及套用,内容梯度从易到难,讲解由浅入深,循序渐进,适合各个层次的读者阅读,并均有所获 。4.详解典型项目案例开发,提高实战水平本书详细介绍了在.NET中连线Oracle和在Java中连线Oracle项目案例的开发 。通过这两个项目案例,可以让读者理解在案例开发中如何连线资料库 。本书内容及体系结构第1篇 PL/SQL简介(第1~2章)本篇主要内容包括:走进Oracle、认识PL/SQL等 。通过本篇的学习,读者可以掌握Oracle开发环境和PL/SQL语言的入门知识 。第2篇 PL/SQL基础(第3~8章) 本篇主要内容包括:数据表的创建和操作、表中数据的操作、数据的基本查询、查询中函式的使用、查询中特殊的转换函式、数据表的高级查询等内容 。通过本篇的学习,读者可以掌握使用PL/SQL语句查询数据表中的数据,添加、删除、修改数据等内容,以及相关的函式 。第3篇 PL/SQL高级技术(第9~21章)本篇主要内容包括:索引和视图的使用、序列的使用、数据类型和流程控制、游标的使用、存储过程和函式的使用、触发器的使用、在使用PL/SQL编程时异常的处理、事务和锁、安全管理、PL/SQL代码的管理以及PL/SQL语句最佳化、备份和恢复访问技术等 。通过本篇的学习,读者可以掌握如何使用PL/SQL语言进行编程和最佳化PL/SQL语句 。第4篇 Oracle套用开发(第22~23章)本篇主要内容包括:在.NET中连线Oracle,在Java中连线Oracle等 。通过本篇的学习,读者可以掌握真正的项目开发中的资料库连线技术 。学习建议? 书中列举了很多实际的例子,希望这些例子对大家有所帮助 。? 坚持编程:编程需要大量的练习 。? 学习本书时,需要从总体框架掌握Oracle的脉络,而不只是学习PL/SQL语句 。本书读者对象? 需要全面学习PL/SQL开发技术的人员;? 使用各种语言的软体程式设计师;? Oracle资料库管理员;? 专业培训机构的学员;? 软体开发项目经理;? 社会培训班学员;? 需要案头必备一本PL/SQL查询手册的人员 。致谢本书主要由赵越(渤海大学)编写 。由于时间匆忙,编写中难免有所疏漏和不妥之处,敬请不吝指正 。