第3版 精通Oracle Database 12c SQL & PL/SQL编程


第3版 精通Oracle Database 12c SQL & PL/SQL编程

文章插图
精通Oracle Database 12c SQL & PL/SQL编程(第3版)【第3版 精通Oracle Database 12c SQL & PL/SQL编程】《精通Oracle Database 12c SQL & PL/SQL编程(第3版)》是2014年出版的图书,作者是美国作家Jason Price 。
基本介绍书名:精通Oracle Database 12c SQL & PL/SQL编程(第3版)
作者:[美]Jason Price
译者:卢涛
ISBN:9787302365983
定价:79.8元
出版时间:2014-6-17
装帧:平装
图书详细信息精通Oracle Database 12c SQL & PL/SQL编程(第3版)作者:[美]Jason Price 着 卢涛 译 ISBN:9787302365983定价:79.8元印次:1-1装帧:平装印刷日期:2014-6-17图书简介学习通过编写SQL语句并构建PL/SQL程式来访问Oracle资料库 。《精通OracleDatabase12cSQL&PL/SQL编程(第3版)》完全涵盖了最新版本Oracle资料库的功能和技术,指导读者编写SQL语句以检索和修改资料库中的信息、掌握SQL*Plus和SQLDeveloper、处理资料库对象、编写PL/SQL程式、採用性能最佳化技术、结合XML以及其他技术 。这本Oracle指南包含掌握SQL所需的全部知识 。目录第1章简介 11.1关係资料库简介 11.2SQL简介 21.3使用SQL*Plus 41.3.1启动SQL*Plus 41.3.2从命令行启动SQL*Plus 41.3.3使用SQL*Plus执行SELECT语句 51.4使用SQLDeveloper 61.5创建store模式 81.5.1检查脚本 81.5.2运行脚本 101.5.3用来创建store模式的DDL语句 111.6添加、修改和删除行 171.6.1向表中添加行 171.6.2修改表中的现有行 191.6.3从表中删除行 201.7连线资料库和下线 201.8退出SQL*Plus 201.9OraclePL/SQL简介 211.10小结 22第2章从资料库表中检索信息 232.1对单表执行SELECT语句 242.2选择一个表中的所有列 242.3使用WHERE子句限定行 252.4行标识符 252.5行号 262.6执行算术运算 262.6.1执行日期运算 272.6.2列运算 282.6.3算术运算操作符的优先权 292.7使用列别名 292.8使用连线操作合併列的输出结果 302.9空值 312.10禁止显示重複行 322.11比较值 332.11.1使用不等于操作符 332.11.2使用大于操作符 342.11.3使用小于或等于操作符 342.11.4使用ANY操作符 342.11.5使用ALL操作符 352.12使用SQL操作符 352.12.1使用LIKE操作符 362.12.2使用IN操作符 372.12.3使用BETWEEN操作符 382.13使用逻辑操作符 382.13.1使用AND操作符 382.13.2使用OR操作符 392.14逻辑操作符的优先权 392.15使用ORDERBY子句对行进行排序 402.16执行使用两个表的SELECT语句 412.17使用表别名 432.18笛卡尔积 432.19执行使用多于两个表的SELECT语句 442.20连线条件和连线类型 452.20.1不等连线 462.20.2外连线 462.20.3自连线 502.21使用SQL/92语法执行连线 512.21.1使用SQL/92标準语法执行两个表的内连线 512.21.2使用USING关键字简化连线 512.21.3使用SQL/92执行多于两个表的内连线 522.21.4使用SQL/92执行多列的内连线 532.21.5使用SQL/92执行外连线 532.21.6使用SQL/92执行自连线 552.21.7使用SQL/92执行交叉连线 552.22小结 55第3章使用SQL*Plus 573.1查看錶的结构 583.2编辑SQL语句 583.3保存、检索并运行档案 603.4格式化列 633.5设定页面大小 653.6设定行大小 663.7清除列的格式 673.8使用变数 673.8.1临时变数 673.8.2已定义变数 703.9创建简单报表 733.9.1在脚本中使用临时变数 733.9.2在脚本中使用已定义变数 733.9.3向脚本中的变数传递值 743.9.4添加页眉和页脚 753.9.5计算小计 763.10从SQL*Plus获取帮助信息 783.11自动生成SQL语句 793.12断开资料库连线并退出SQL*Plus 793.13小结 79第4章使用简单函式 814.1使用单行函式 824.1.1字元函式 824.1.2数值函式 914.1.3转换函式 964.1.4正则表达式函式 1064.2使用聚合函式 1124.3对行进行分组 1164.3.1使用GROUPBY子句对行进行分组 1164.3.2调用聚合函式的错误用法 1194.3.3使用HAVING子句过滤行组 1204.3.4组合使用WHERE和GROUPBY子句 1204.4小结 122第5章日期和时间的存储与处理 1235.1几个简单的存储和检索日期的例子 1235.2使用TO_CHAR()和TO_DATE()转换时间值 125 5.2.1使用TO_CHAR()将时间值转换为字元串 1255.2.2使用TO_DATE()将字元串转换为时间值 1305.3设定默认的日期格式 1325.4Oracle对两位年份的处理 1335.4.1使用YY格式 1335.4.2使用RR格式 1345.5使用时间值函式 1355.6使用时区 1405.6.1与时区有关的函式 1405.6.2资料库时区和会话时区 1415.6.3获取时区的时差 1425.6.4获取时区名 1425.6.5将时间值从一个时区转换为另一个时区 1435.7使用时间戳 1435.7.1使用时间戳类型 1435.7.2与时间戳有关的函式 1475.8使用时间间隔 1525.8.3与时间间隔有关的函式 1575.9小结 158第6章子查询 1596.1子查询的类型 1596.2编写单行子查询 1606.2.1在WHERE子句中使用子查询 1606.2.2使用其他单行操作符 1616.2.3在HAVING子句中使用子查询 1616.2.4在FROM子句中使用子查询(内联视图) 1626.2.5可能碰到的错误 1636.3编写多行子查询 1646.3.1在多行子查询中使用IN操作符 1656.3.2在多行子查询中使用ANY操作符 1656.3.3在多行子查询中使用ALL操作符 1666.4编写多列子查询 1666.5编写关联子查询 1676.5.1关联子查询的例子 1676.5.2在关联子查询中使用EXISTS和NOTEXISTS 1686.6编写嵌套子查询 1706.7编写包含子查询的UPDATE和DELETE语句 1726.7.1编写包含子查询的UPDATE语句 1726.7.2编写包含子查询的DELETE语句 1726.8使用子查询因子化 1736.9小结 174第7章高级查询 1757.1使用集合操作符 1767.1.1示例表 1767.1.2使用UNIONALL操作符 1777.1.3使用UNION操作符 1787.1.4使用INTERSECT操作符 1797.1.5使用MINUS操作符 1797.1.6组合使用集合操作符 1807.2使用TRANSLATE()函式 1827.3使用DECODE()函式 1837.4使用CASE表达式 1857.4.1使用简单CASE表达式 1857.4.2使用搜寻CASE表达式 1867.5层次化查询 1877.5.1示例数据 187 7.5.2使用CONNECTBY和STARTWITH子句 1897.5.3使用伪列LEVEL 1907.5.4格式化层次化查询的结果 1907.5.5从非根节点开始遍历1917.5.6在STARTWITH子句中使用子查询 1927.5.7从下向上遍历树 1927.5.8从层次化查询中删除节点和分支 1937.5.9在层次化查询中加入其他条件 1947.5.10使用递归子查询因子化查询分层数据 1947.6使用ROLLUP和CUBE子句 1987.6.1示例表 1997.6.2使用ROLLUP子句 2007.6.3使用CUBE子句 2037.6.4使用GROUPING()函式 2047.6.5使用GROUPINGSETS子句 2077.6.6使用GROUPING_ID()函式 2077.6.7在GROUPBY子句中多次使用某个列 2097.6.8使用GROUP_ID()函式 2107.7使用CROSSAPPLY和OUTERAPPLY 2117.7.1CROSSAPPLY 2127.7.2OUTERAPPLY 2127.8使用LATERAL 2137.9小结 214第8章分析数据 2158.1使用分析函式 2158.1.1示例表 2168.1.2使用评级函式 2178.1.3使用反百分位函式 2238.1.4使用视窗函式 2248.1.5使用报表函式 2308.1.6使用LAG()和LEAD()函式 2338.1.7使用FIRST和LAST函式 2348.1.8使用线性回归函式 2348.1.9使用假想评级与分布函式 2358.2使用MODEL子句 2368.2.1MODEL子句示例 2368.2.2用位置标记和符号标记访问数据单元 2388.2.3用BETWEEN和AND返回特定範围内的数据单元 2398.2.4用ANY和ISANY访问所有的数据单元 2398.2.5用CURRENTV()函式获取某个维度的当前值 2398.2.6用FOR循环访问数据单元 2408.2.7处理空值和缺失值 2428.2.8更新已有的单元 2448.3使用PIVOT和UNPIVOT子句 2458.3.1PIVOT子句的简单示例 2458.3.2转换多个列 2468.3.3在转换中使用多个聚合函式 2478.3.4使用UNPIVOT子句 2488.4执行Top-N查询 2498.4.1使用FETCHFIRST子句 2508.4.2使用OFFSET子句 2508.4.3使用PERCENT子句 2518.4.4使用WITHTIES子句 2528.5在数据中发现模式 2528.5.1在all_sales2表中发现V形数据模式 2538.5.2在all_sales3表中发现W型数据模式 2568.5.3在all_sales3表中发现V形数据模式 2578.6小结 258第9章修改表的内容 2599.1使用INSERT语句添加行 2609.1.1省略列的列表 2619.1.2为列指定空值 2619.1.3在列值中使用单引号和双引号 2619.1.4从一个表向另一个表複製行 2629.2使用UPDATE语句修改行 262 9.3使用RETURNING子句返回聚合函式的计算结果 2639.4使用DELETE语句删除行 2649.5资料库的完整性 2649.5.1主键约束 2649.5.2外键约束 2659.6使用默认值 2669.7使用MERGE合併行 2679.8资料库事务 2699.8.1事务的提交和回滚 2699.8.2事务的开始与结束 2709.8.3保存点 2719.8.4事务的ACID特性 2729.8.5并发事务 2739.8.6事务锁 2749.8.7事务隔离级别 2749.8.8SERIALIZABLE事务隔离级别的一个例子 2759.9查询闪回 2769.9.1授权使用闪回 2769.9.2时间查询闪回 2779.9.3SCN查询闪回 2789.10小结 280第10章用户、特权和角色 28110.1用户 28210.1.1创建用户 28210.1.2修改用户密码 28310.1.3删除用户 28310.2系统特权 28410.2.1向用户授予系统特权 28410.2.2检查授予用户的系统特权 28510.2.3使用系统特权 28610.2.4撤消用户的系统特权 28610.3对象特权 28710.3.1向用户授予对象特权 28710.3.2检查已授予的对象特权 28810.3.3检查已接受的对象特权 28910.3.4使用对象特权 29110.3.5创建同义词 29110.3.6创建公共同义词 29210.3.7撤消用户的对象特权 29310.4角色 29310.4.1创建角色 29310.4.2为角色授权 29410.4.3将角色授予用户 29410.4.4检查授予用户的角色 29410.4.5检查授予角色的系统特权 29610.4.6检查授予角色的对象特权 29610.4.7使用已授予角色的特权 29810.4.8启用和禁用角色 29910.4.9撤消角色 30010.4.10从角色中撤消特权 30010.4.11删除角色 30010.5审计 30010.5.1执行审计需要的特权 30010.5.2审计示例 30110.5.3审计跟蹤视图 30210.6小结 303第11章创建表、序列、索引和视图 30511.1表 30511.1.1创建表 30611.1.2获得有关表的信息 30711.1.3获得表中列的信息 30811.1.4修改表 30811.1.5重命名表 317 11.1.6向表中添加注释 31711.1.7截断表 31811.1.8删除表 31811.1.9使用BINARY_FLOAT和BINARY_DOUBLE数据类型 31911.1.10使用DEFAULTONNULL列 32011.1.11在表中使用可见及不可见列 32111.2序列 32311.2.1创建序列 32411.2.2获取有关序列的信息 32511.2.3使用序列 32611.2.4使用序列填充主键 32811.2.5使用序列指定默认列值 32911.2.6使用标识列 32911.2.7修改序列 33011.2.8删除序列 33011.3索引 33111.3.1创建B-树索引 33111.3.2创建基于函式的索引 33211.3.3获取有关索引的信息 33311.3.4获取列索引的信息 33311.3.5修改索引 33411.3.6删除索引 33411.3.7创建点阵图索引 33411.4视图 33511.4.1创建并使用视图 33611.4.2修改视图 34311.4.3删除视图 34311.4.4在视图中使用可见列和不可见列 34311.5闪回数据归档 34411.6小结 347第12章PL/SQL编程简介 34912.1块结构 35012.2变数和类型 35112.3条件逻辑 35212.4循环 35212.4.1简单循环 35312.4.2WHILE循环 35412.4.3FOR循环 35412.5游标 35512.5.1步骤(1):声明用于保存列值的变数 35512.5.2步骤(2):声明游标 35512.5.3步骤(3):打开游标 35612.5.4步骤(4):从游标中取得行 35612.5.5步骤(5):关闭游标 35712.5.6完整的示例:product_cursor.sql 35712.5.7游标与FOR循环 35812.5.8OPEN-FOR语句 35912.5.9无约束游标 36112.6异常 36212.6.1ZERO_DIVIDE异常 36412.6.2DUP_VAL_ON_INDEX异常 36512.6.3INVALID_NUMBER异常 36512.6.4OTHERS异常 36512.7过程 36612.7.1创建过程 36612.7.2调用过程 36812.7.3获取有关过程的信息 36912.7.4删除过程 37012.7.5查看过程中的错误 37012.8函式 371 12.8.1创建函式 37112.8.2调用函式 37212.8.3获取有关函式的信息 37312.8.4删除函式 37312.9包 37312.9.1创建包的规範 37312.9.2创建包体 37412.9.3调用包中的函式和过程 37512.9.4获取有关包中函式和过程的信息 37612.9.5删除包 37612.10触发器 37712.10.1触发器启动的时机 37712.10.2设定示例触发器 37712.10.3创建触发器 37712.10.4启动触发器 37912.10.5获取有关触发器的信息 38012.10.6禁用和启用触发器 38212.10.7删除触发器 38212.11其他PL/SQL特性 38212.11.1SIMPLE_INTEGER类型 38212.11.2在PL/SQL中使用序列 38312.11.3PL/SQL本地机器代码生成 38412.11.4WITH子句 38512.12小结 386第13章资料库对象 38713.1对象简介 38713.2创建对象类型 38813.3使用DESCRIBE获取有关对象类型的信息 39013.4在资料库表中使用对象类型 39113.4.1列对象 39113.4.2对象表 39413.4.3对象标识符和对象引用 39713.4.4比较对象值 39913.6类型继承 41013.6.1运行脚本以创建第2个对象模式 41113.6.2继承属性 41113.7用子类型对象代替超类型对象 41313.7.1SQL例子 41313.7.2PL/SQL示例 41413.7.3NOTSUBSTITUTABLE对象 41513.8其他有用的对象函式 41613.8.1ISOF()函式 41613.8.2TREAT()函式 41913.8.3SYS_TYPEID()函式 42313.9NOTINSTANTIABLE对象类型 42413.10用户自定义的构造函式 42513.11重载方法 42913.12通用调用 43013.12.1运行脚本以创建第3个对象模式 43113.12.2继承属性 43113.13小结 432第14章集合 43514.1集合简介 43514.2创建集合类型 43614.2.1创建变长数组类型 43614.2.2创建嵌套表类型 43714.3使用集合类型定义表列 43714.3.1使用变长数组类型定义表列 437 14.3.2使用嵌套表类型定义表列 43814.4 获取集合信息 43814.4.1获取变长数组信息 43814.4.2获得嵌套表信息 43914.5填充集合元素 44114.5.1填充变长数组元素 44114.5.2填充嵌套表元素 44114.6检索集合元素 44214.6.1检索变长数组元素 44214.6.2检索嵌套表元素 44314.7使用TABLE()函式将集合视为一系列行 44314.7.1将TABLE()函式套用于变长数组 44414.7.2将TABLE()函式套用于嵌套表 44514.8更改集合元素 44514.8.1更改变长数组元素 44514.8.2更改嵌套表元素 44614.9使用映射方法比较嵌套表的内容 44714.10使用CAST()函式将集合从一种类型转换为另一种类型 44914.10.1使用CAST()函式将变长数组转换为嵌套表 44914.10.2使用CAST()函式将嵌套錶转换为变长数组 45014.11在PL/SQL中使用集合 45114.11.1操作变长数组 45114.11.2操作嵌套表 45314.11.3PL/SQL集合方法 45514.12创建和使用多级集合 46414.12.1运行脚本创建第二个集合模式 46414.12.2使用多级集合 46414.13OracleDatabase10g对集合的增强 46714.13.1运行脚本以创建第三个集合模式 46714.13.2关联数组 46714.13.3更改元素类型的大小 46814.13.4增加变长数组中元素的数目 46914.13.5在临时表中使用变长数组 46914.13.6为嵌套表的存储表使用不同的表空间 46914.13.7嵌套表对ANSI的支持 47014.14小结 478第15章大对象 47915.1大对象(LOB)简介 48015.2示例档案 48015.3理解大对象类型 48015.4创建包含大对象的表 48115.5在SQL中使用大对象 48315.5.1使用CLOB和BLOB对象 48315.5.2使用BFILE对象 48515.6在PL/SQL中使用大对象 48615.6.1APPEND()方法 48915.6.2CLOSE()方法 48915.6.3COMPARE()方法 48915.6.4COPY()方法 49115.6.5CREATETEMPORARY()方法 49215.6.6ERASE()方法 49215.6.7FILECLOSE()方法 49315.6.8FILECLOSEALL()方法 493 15.6.9FILEEXISTS()方法 49415.6.10FILEGETNAME()方法 49415.6.11FILEISOPEN()方法 49515.6.12FILEOPEN()方法 49515.6.13FREETEMPORARY()方法 49615.6.14GETCHUNKSIZE()方法 49615.6.15GETLENGTH()方法 49715.6.16GET_STORAGE_LIMIT()方法 49715.6.17INSTR()方法 49815.6.18ISOPEN()方法 49915.6.19ISTEMPORARY()方法 49915.6.20LOADFROMFILE()方法 50015.6.21LOADBLOBFROMFILE()方法 50115.6.22LOADCLOBFROMFILE()方法 50215.6.23OPEN()方法 50315.6.24READ()方法 50315.6.25SUBSTR()方法 50415.6.26TRIM()方法 50515.6.27WRITE()方法 50615.6.28WRITEAPPEND()方法 50715.6.29PL/SQL示例过程 50715.7LONG和LONGRAW类型 52415.7.1示例表 52415.7.2向LONG和LONGRAW列添加数据 52515.7.3将LONG和LONGRAW列转换为LOB 52515.8OracleDatabase10g对大对象的增强 52615.8.1CLOB和NCLOB对象之间的隐式转换 52715.8.2在触发器中使用LOB时:new属性的用法 52815.9OracleDatabase11g对大对象的增强 52815.9.1加密LOB数据 52815.9.2压缩LOB数据 53215.9.3删除LOB重複数据 53315.10OracleDatabase12c对大对象的增强 53315.11小结 534第16章SQL最佳化 53516.1SQL最佳化简介 53516.2使用WHERE子句过滤行 53616.3使用表连线而不是多个查询 53616.4执行连线时使用完全限定的列引用 53716.5使用CASE表达式而不是多个查询 53816.6添加表索引 53916.6.1何时创建B-树索引 53916.6.2何时创建点阵图索引 54016.7使用WHERE而不是HAVING 540 16.8使用UNIONALL而不是UNION 54116.9使用EXISTS而不是IN 54216.10使用EXISTS而不是DISTINCT 54316.11使用GROUPINGSETS而不是CUBE 54316.12使用绑定变数 54316.12.1不相同的SQL语句 54416.12.2使用绑定变数定义相同的SQL语句 54416.12.3列出和输出绑定变数 54516.12.4使用绑定变数存储PL/SQL函式的返回值 54516.12.5使用绑定变数存储来自REFCURSOR的返回值 54616.13比较执行查询的成本 54616.13.1检查执行计画 54716.13.2比较执行计画 55216.14为最佳化器传递提示 55316.15其他最佳化工具 55416.15.1OracleEnterpriseManager 55516.15.2AutomaticDatabaseDiagnosticMonitor 55516.16小结 556第17章XML和Oracle资料库 55717.1XML简介 55717.2从关係数据生成XML 55817.2.1XMLELEMENT()函式 55817.2.2XMLATTRIBUTES()函式 56117.2.3XMLFOREST()函式 56217.2.4XMLAGG()函式 56317.2.5XMLCOLATTVAL()函式 56517.2.6XMLCONCAT()函式 56617.2.7XMLPARSE()函式 56617.2.8XMLPI()函式 56717.2.9XMLCOMMENT()函式 56717.2.10XMLSEQUENCE()函式 56817.2.11XMLSERIALIZE()函式 56917.2.12PL/SQL示例:将XML数据写入档案 56917.2.13XMLQUERY()函式 57117.3将XML保存到资料库中 57517.3.1示例XML档案 57517.3.2创建示例XML模式 57617.3.3从示例XML模式检索信息 57717.3.4更新示例XML模式中的信息 58217.4小结 585附录Oracle数据类型 587