请输入您要查询的百科知识:

 

词条 Oracle Database10g SQL开发指南
释义

版权信息

作 者: (美)普里斯|译者:冯锐//由渊霞

出 版 社: 清华大学出版社

出版时间: 2005年05月 版 次: 

印刷时间: 2008年04月 开 本: 4

I 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*Plus

1.3.1启动Windows版本的SQL*Plus

1.3.2启动命令行版本的SQL*Plus

1.4使用SQL*Plus执行SELECT语句

1.5SQL*PlusWorksheet

1.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_DOUBLE

1.8.1BINARY_FLOAT和BINARY_DOUBLE的优点

1.8.2在表中使用BINARY_FLOAT和BINARY_DOUBLE

1.8.3特殊值

1.9退出SQL*Plus

1.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*Plus

5.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和NOTEXISTS

6.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使用伪列LEVEL

7.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.sql

11.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表执行DML

12.6.1向object_products表中插入记录

12.6.2从object_products表中选择记录

12.6.3更新object_products表中的记录

12.6.4从object_products表中删除记录

12.7对object_customers表执行DML

12.7.1向object_customers表中插入记录

12.7.2从object_customers表中查询记录

12.8对purchases表执行DML

12.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和BLOB

14.5.2使用BFILE

14.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运行SQL

15.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.java

15.18.1编译BasicExample1

15.18.2运行BasicExample1

15.19预备SQL语句

15.20OracleJDBC扩展

15.20.1oracle.sql包

15.20.2oracle.jdbc包

15.20.3示例程序:BasicExample3.java

15.21小结

第16章SQL优化

16.1SQL优化简介

16.2使用WHERE子句过滤行

16.3使用表连接而不是多个查询

16.4执行连接时使用完全限定的列引用

16.5使用CASE表达式而不是多个查询

16.6添加表索引

16.7使用WHERE而不是HAVING

16.8使用UNIONALL而不是UNION

16.9使用EXISTS而不是IN

16.10使用EXISTS而不是DISTINCT

16.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.2OracleEnterpriseManagerDiagnosticsPack

16.14.3自动数据库诊断监控

16.15小结

附录AOracle数据类型

A.1OracleSQL类型

A.2OraclePL/SQL类型

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/11/15 11:25:43