Oracle Database10g SQL开发指南


Oracle Database10g SQL开发指南

文章插图
Oracle Database10g SQL开发指南【Oracle Database10g SQL开发指南】《Oracle Database10g SQL开发指南》是2005年由清华大学出版社出版的图书 , 作者是(美)普里斯|译者:冯锐//由渊霞
基本介绍书名:Oracle Database10g SQL开发指南 
作者:(美)普里斯|译者:冯锐//由渊霞
ISBN:9787302104872 
定价:59.80元 
出版社:清华大学出版社 
出版时间:2005年05月 
版权资讯作 者:(美)普里斯|译者:冯锐//由渊霞出 版 社:清华大学出版社出版时间:2005年05月版 次:印刷时间:2008年04月开 本:4I S B N :7302104875包 装:1编辑导读对资料库执行查询、插入、更新和删除操作 , 编写PL/SQL存储程式、包和触发器 。创建资料库表、序列、索引、视图和用户 , 使用SQL*Plus来执行SQL语句、脚本和报表 。使用分析函式进行複杂的运算 , 了解通过JDBC , 使用Java运行SQL的基本知识 。使用大对象来存储128TB以内的字元和二进制数据 , 定义资料库类型 , 并创建对象来处理高级数据 。使用OracleDatabase10g中的所有新特性 , 如BINARY_FLOAT和BINARY_DOUBLE类型、MODEL子句 , 等等 。使用最佳化技术实现真正高效率的SQL语句 。内容简介本书全面深入地论述了如何使用结构化查询语言(SQL)语句来访问Oracle资料库 , 以及使用PL/SQL(ProceduralLanguage/SQL)来编写包含SQL语句的程式 。本书由Oracle前产品经理JasonPrice亲笔撰写 , 基于新推出的SQL2003规範]]] , 详细介绍了OracleDatabase10g的新特性和功能 。全书内容系统、权威 , 能帮助读者快速掌握SQL的核心知识 。作者简介JasonPrice职业谘询专家 , Oracle公司前产品经理 , 对Oracle的众多产品都做出了卓越的贡献 。Jason是一位经Oracle认证的资料库管理员和应用程式开发员 , 在软体产业具有10余年的从业经验 , 并亲笔撰写了多本关于Oracle、Jave和Net的优秀图书 。本书目录第1章简介1.1关係资料库简介1.2结构化查询语言(SQL)简介1.3使用SQL*Plus1.3.1启动Windows版本的SQL*Plus1.3.2启动命令行版本的SQL*Plus1.4使用SQL*Plus执行SELECT语句1.5SQL*PlusWorksheet1.6创建store模式1.6.1运行SQL*Plus脚本创建store模式1.6.2用来创建store模式的DDL语句1.7添加、修改、删除行1.7.1向表中添加行1.7.2修改表中的现有行1.7.3从表中删除行1.8Oracle10g的新数据类型BINARY_FLOAT和BINARY_DOUBLE1.8.1BINARY_FLOAT和BINARY_DOUBLE的优点1.8.2在表中使用BINARY_FLOAT和BINARY_DOUBLE1.8.3特殊值1.9退出SQL*Plus1.10OraclePL/SQL简介1.11小结第2章从资料库表中检索信息2.1对单表执行SELECT语句2.2选择一个表中的所有列2.3理解行标识符2.4执行算术运算2.4.1日期运算2.4.2列运算2.5使用列别名2.6使用串连操作合併列的输出结果2.7理解空值2.8禁止显式重複行2.9使用WHERE子句过滤行2.9.1使用比较操作符2.9.2使用SQL操作符2.9.3使用逻辑操作符2.9.4理解操作符的优先权2.10使用ORDERBY子句对行进行排序2.11执行使用两个表的SELECT语句2.12使用表别名2.13笛卡尔积2.14执行使用多于两个表的SELECT语句2.15理解连线条件和连线类型2.15.1理解不等连线2.15.2理解外连线2.15.3理解自连线2.16使用SQL/92语法执行连线2.16.1使用SQL/92标準语法执行两个表的内连线2.16.2使用USING关键字简化连线2.16.3使用SQL/92执行多于两个以上表的内连线2.16.4使用SQL/92执行多列的内连线2.16.5使用SQL/92执行外连线2.16.6使用SQL/92执行自连线2.16.7使用SQL/92执行交叉连线2.17小结第3章使用简单函式3.1使用单行函式3.1.1字元函式3.1.2数字函式3.1.3转换函式3.1.4正则表达式函式3.2使用聚合函式3.2.1AVG()函式3.2.2COUNT()函式3.2.3MAX()和MIN()函式3.2.4STDDEV()函式3.2.5SUM()函式3.2.6VARIANCE()函式3.3对行进行分组3.3.1使用GROUPBY子句对行进行分组3.3.2调用聚合函式的错误用法3.3.3使用HAVING子句过滤行分组3.3.4组合使用WHERE和GROUPBY子句3.3.5组合使用WHERE、GROUPBY和HAVING子句3.4小结第4章日期和时间的存储与处理4.1几个简单的存储和检索日期的例子4.2使用TO_CHAR()和TO_DATE()转换时间值4.2.1使用TO_CHAR()将时间值转换为字元串4.2.2使用TO_DATE()将字元串转换为时间值4.3设定默认的日期格式4.4Oracle对2位年份的处理4.4.1使用YY格式4.4.2使用RR格式 4.5使用时间值函式4.5.1ADD_MONTHS()函式4.5.2LAST_DAY()函式4.5.3MONTHS_BETWEEN()4.5.4NEXT_DAY()函式4.5.5ROUND()函式4.5.6SYSDATE()函式4.5.7TRUNC()函式4.6理解时区4.6.1与时区有关的函式4.6.2资料库时区和会话时区4.6.3获取时区的时差4.6.4获取时区名4.6.5将时间值从一个时区转换为另一个时区4.7使用时间戳4.7.1使用TIMESTAMP类型4.7.2与时间戳有关的函式4.8使用时间间隔4.8.1使用INTERVALYEARTOMONTH类型4.8.2使用INTERVALDAYTOSECOND类型4.8.3与时间间隔有关的函式4.9小结第5章使用SQL*Plus5.1查看錶结构5.2编辑SQL语句5.3保存、检索并运行档案5.4格式化列5.5设定页面大小5.6设定行大小5.7清除列格式5.8使用变数5.8.1临时变数5.8.2已定义变数5.9创建简单报表5.9.1在脚本中使用临时变数5.9.2在脚本中使用已定义变数5.9.3向脚本中的变数传递值5.9.4添加页眉和页脚5.9.5计算小计5.10自动生成SQL语句5.11小结第6章子查询6.1子查询的类型6.2编写单行子查询6.2.1在WHERE子句中使用子查询6.2.2在HAVING子句中使用子查询6.2.3在FROM子句中使用子查询(内联视图)6.2.4可能碰到的两个错误6.3编写多行子查询6.3.1在多行子查询中使用IN操作符6.3.2在多行子查询中使用ANY操作符6.3.3在多行子查询中使用ALL操作符6.4编写多列子查询6.5编写关联子查询6.5.1关联子查询的例子6.5.2在关联子查询中使用EXISTS和NOTEXISTS6.6编写嵌套子查询6.7编写包含子查询的UPDATE和DELETE语句6.7.1编写包含子查询的UPDATE语句6.7.2编写包含子查询的DELETE语句6.8小结第7章高级查询7.1使用集合操作符7.1.1示例表7.1.2使用UNIONALL操作符 7.1.3使用UNION操作符7.1.4使用INTERSECT操作符7.1.5使用MINUS操作符7.1.6组合使用集合操作符7.2使用TRANSLATE()函式7.3使用DECODE()函式7.4使用CASE表达式7.4.1使用简单CASE表达式7.4.2使用搜寻CASE表达式7.5层次化查询7.5.1示例数据7.5.2使用CONNECTBY和STARTWITH子句7.5.3使用伪列LEVEL7.5.4格式化层次化查询的结果7.5.5从非根节点开始遍历7.5.6在STARTWITH子句中使用子查询7.5.7从下向上遍历树7.5.8从层次查询中删除节点和分支7.5.9在层次化查询中加入其他条件7.6使用扩展的GROUPBY子句7.7使用ROLLUP子句7.7.1使用CUBE子句7.7.2使用GROUPING()函式7.7.3使用GROUPINGSETS子句7.7.4使用GROUPING_ID()函式7.7.5在GROUPBY子句中多次使用一个列7.7.6使用GROUP_ID()函式7.8使用分析函式7.8.1示例表7.8.2使用评级函式7.8.3使用反百分点函式7.8.4使用视窗函式7.8.5使用报表函式7.8.6使用LAG()和LEAD()函式7.8.7使用FIRST和LAST函式7.8.8使用线性回归函式7.8.9使用假想评级与分布函式7.9使用MODEL子句7.9.1示例MODEL子句7.9.2用位置标记和符号标记访问数据单元7.9.3用BETWEEN和AND返回特定範围内的数据单元7.9.4用ANY和ISANY访问所有的数据单元7.9.5用CURRENTV()获取某个维度的当前值7.9.6用FOR循环访问数据单元7.9.7处理空值和缺失值7.9.8更新已有的单元7.10小结第8章修改表的内容8.1使用INSERT语句添加行8.1.1忽略列的列表8.1.2为列指定空值8.1.3在列值中使用单引号和双引号8.1.4从一个表向另外一个表複製行8.2使用UPDATE语句修改行8.3使用DELETE语句删除行8.4资料库的完整性8.4.1主键约束8.4.2外键约束8.5使用默认值8.6使用MERGE合併行8.7资料库事务8.7.1事务的提交和回滚8.7.2事务的开始与结束8.7.3保存点8.7.4事务的ACID特性8.7.5并发事务 8.7.6事务锁8.7.7事务隔离级别8.7.8SERIALIZABLE事务隔离性级别的一个例子8.8查询闪回8.8.1使用闪回的授权8.8.2时间查询闪回8.8.3系统变更号查询闪回8.9小结第9章资料库安全性9.1用户9.1.1创建用户9.1.2修改用户密码9.1.3删除用户9.2系统特权9.2.1向用户授予系统特权9.2.2检查授予用户的系统特权9.2.3使用系统特权9.2.4撤销用户的系统特权9.3对象特权9.3.1向用户授予对象特权9.3.2检查已授予的对象特权9.3.3检查已接受的对象特权9.3.4使用对象特权9.3.5同名对象9.3.6公共同名对象9.3.7撤销用户的对象特权9.4角色9.4.1创建角色9.4.2为角色授权9.4.3将角色授予用户9.4.4检查授予用户的角色9.4.5检查授予角色的系统特权9.4.6检查授予角色的对象特权9.4.7使用授予角色的特权9.4.8默认角色9.4.9撤销角色9.4.10从角色中撤销特权9.4.11删除角色9.5小结第10章创建表、序列、索引和视图10.1表10.1.1创建表10.1.2获得有关表的信息10.1.3获得表中列的信息10.1.4修改表10.1.5重命名表10.1.6向表添加注释10.1.7截断表10.1.8删除表10.2序列10.2.1创建序列10.2.2获取有关序列的信息10.2.3使用序列10.2.4使用序列填充主键10.2.5修改序列10.2.6删除序列10.3索引10.3.1创建索引10.3.2创建基于函式的索引10.3.3获取有关索引的信息10.3.4获取列索引的信息10.3.5修改索引10.3.6删除索引10.4视图10.4.1创建并使用视图10.4.2修改视图10.4.3删除视图10.5小结第11章PL/SQL编程简介11.1块结构11.2变数和类型11.3条件逻辑11.4循环11.4.1简单循环11.4.2WHILE循环11.4.3FOR循环11.5游标11.5.1步骤1:声明用于保存列值的变数 11.5.2步骤2:声明游标11.5.3步骤3:打开游标11.5.4步骤4:从游标中取得记录11.5.5步骤5:关闭游标11.5.6完整的实例:product_cursor.sql11.5.7游标与FOR循环11.6异常11.6.1ZERO_DIVIDE异常11.6.2DUP_VAL_ON_INDEX异常11.6.3INVALID_NUMBER异常11.6.4OTHERS异常11.7过程11.7.1创建过程11.7.2调用过程11.7.3获取有关过程的信息11.7.4删除过程11.7.5查看过程中的错误11.8函式11.8.1创建函式11.8.2调用函式11.8.3获取有关函式的信息11.8.4删除函式11.9包11.9.1创建包规範11.9.2创建包体11.9.3调用包中的函式和过程11.9.4获取有关包中函式和过程的信息11.9.5删除包11.10触发器11.10.1触发器运行的时机11.10.2设定示例触发器11.10.3创建触发器11.10.4激活触发器11.10.5获取有关触发器的信息11.10.6禁用和启用触发器11.10.7删除触发器11.11小结第12章资料库对象12.1对象简介12.2创建对象类型12.3使用DESCRIBE获取有关对象类型的信息12.4用对象类型定义列对象和对象表12.5对products表执行DML操作12.5.1将记录插入到products表中12.5.2从products表中查询记录12.5.3修改products表中的记录12.5.4从products表中删除记录12.6对object_products表执行DML12.6.1向object_products表中插入记录12.6.2从object_products表中选择记录12.6.3更新object_products表中的记录12.6.4从object_products表中删除记录12.7对object_customers表执行DML12.7.1向object_customers表中插入记录12.7.2从object_customers表中查询记录12.8对purchases表执行DML12.8.1向purchases表中插入记录12.8.2从purchases表中选择记录 12.8.3更新purchases表中的记录12.9在PL/SQL中使用对象12.10类型继承12.11NOTINSTANTIABLE对象类型12.12用户自定义的构造函式12.13小结第13章集合13.1集合简介13.2变长数组13.2.1创建变长数组类型13.2.2使用变长数组类型定义表列13.2.3获得变长数组信息13.2.4填充变长数组元素13.2.5查找变长数组元素13.2.6更改变长数组元素13.3嵌套表13.3.1创建嵌套表类型13.3.2使用嵌套表类型定义表列13.3.3获得嵌套表信息13.3.4填充嵌套表元素13.3.5查找嵌套表元素13.3.6更改嵌套表元素13.4多级集合类型13.5在PL/SQL中使用集合13.5.1操作变长数组13.5.2操作嵌套表13.5.3集合方法13.6Oracle10g对集合的改进13.6.1关联数组13.6.2更改元素类型的大小或精度13.6.3增加变长数组的元素数目13.6.4在临时表中使用变长数组13.6.5为嵌套表的存储表使用不同的表空间13.6.6对嵌套表的ANSI支持13.7小结第14章大对象14.1大对象(LOB)简介14.2示例档案14.3理解大对象类型14.4创建包含大对象的表14.5在SQL中使用大对象14.5.1使用CLOB和BLOB14.5.2使用BFILE14.6在PL/SQL中使用大对象14.6.1READ()14.6.2WRITE()14.6.3APPEND()14.6.4CLOSE()14.6.5COMPARE()14.6.6COPY()14.6.7CREATETEMPORARY()14.6.8ERASE()14.6.9FILECLOSE()14.6.10FILECLOSEALL()14.6.11FILEEXISTS()14.6.12FILEGETNAME()14.6.13FILEISOPEN()14.6.14FILEOPEN()14.6.15FREETEMPORARY()14.6.16GETCHUNKSIZE()14.6.17GET_STORAGE_LIMIT()14.6.18GETLENGTH()14.6.19INSTR()14.6.20ISOPEN()14.6.21ISTEMPORARY()14.6.22LOADFROMFILE() 14.6.23LOADBLOBFROMFILE()14.6.24LOADCLOBFROMFILE()14.6.25OPEN()14.6.26SUBSTR()14.6.27TRIM()14.6.28WRITEAPPEND()14.7理解LONG和LONGRAW类型14.7.1示例表14.7.2使用LONG和LONGRAW列14.8Oracle10g对大对象的增强14.8.1CLOB和NCLOB对象之间的隐式转换14.8.2在触发器中使用LOB时:new属性的用法14.9小结第15章使用Java运行SQL15.1準备工作15.2配置计算机15.2.1设定ORACLE_HOME环境变数15.2.2设定JAVA_HOME环境变数15.2.3设定PATH环境变数15.2.4设定CLASSPATH环境变数15.2.5设定LD_LIBRARAY_PATH环境变数15.3OracleJDBC驱动程式15.3.1Thin驱动程式15.3.2OCI驱动器15.3.3伺服器端内部驱动器15.3.4伺服器端Thin驱动器15.4导入JDBC包15.5注册OracleJDBC驱动程式15.6打开资料库连线15.6.1使用DriverManager类的getConnection()方法连线资料库15.6.2使用Oracle数据源连线资料库15.7创建JDBCStatement对象15.8从资料库检索列15.8.1步骤1:创建和填充ResultSet对象15.8.2步骤2:从ResultSet对象中读取列值15.8.3步骤3:关闭ResultSet对象15.9向资料库添加行15.10更改资料库的行15.11删除资料库的行15.12处理数字15.13处理资料库Null值15.14控制资料库事务15.15执行DDL语句15.16处理异常15.17关闭JDBC对象15.18示例程式:BasicExample1.java15.18.1编译BasicExample115.18.2运行BasicExample115.19预备SQL语句15.20OracleJDBC扩展15.20.1oracle.sql包15.20.2oracle.jdbc包15.20.3示例程式:BasicExample3.java15.21小结第16章SQL最佳化 16.1SQL最佳化简介16.2使用WHERE子句过滤行16.3使用表连线而不是多个查询16.4执行连线时使用完全限定的列引用16.5使用CASE表达式而不是多个查询16.6添加表索引16.7使用WHERE而不是HAVING16.8使用UNIONALL而不是UNION16.9使用EXISTS而不是IN16.10使用EXISTS而不是DISTINCT16.11使用绑定变数16.11.1不相同的SQL语句16.11.2使用绑定变数定义相同SQL语句16.11.3列出和输出绑定变数16.11.4使用绑定变数存储PL/SQL函式的返回值16.11.5使用绑定变数存储REFCURSOR的行16.12比较执行查询的成本16.12.1检查执行计画16.12.2比较执行计画16.13为最佳化器传递提示16.14其他最佳化工具16.14.1Statspack包16.14.2OracleEnterpriseManagerDiagnosticsPack16.14.3自动资料库诊断监控16.15小结附录AOracle数据类型A.1OracleSQL类型A.2OraclePL/SQL类型