首页>参考读物>计算机科学与技术>数据库

Oracle 9i参考手册
作者 : [美]Kevin Loney,George Koch
译者 : 钟鸣 石永平 郝玉洁
丛书名 : Oracle技术丛书
出版日期 : 2003-07-01
ISBN : 7-111-12153-8
定价 : 108.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 977
开本 : 16开
原书名 : Oracle 9i: The Complete Reference
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书由著名的Oracle畅销书作家Kevin Loney、George Koch以及TUSC的多位技术专家合力打造,涵盖了Oracle 9i数据库的所有特性。
  本书的技术主题主要包括:
  使用倒叙查询使数据保持在未提交前的状态
  创建、查询和管理外部表
  执行和调整SQL查询
  使用SQL*PLUS生成复杂的报表
  使用PL/SQL创建触发器、存储过程、函数和包
  类型、对象视图和方法的实现
  使用SQL*Loader将数据从外部文件导入Oracle据库表中
  使用SQLJ、JDBC和XML开发健壮的数据库应用
  利用Oracle 9i数据字典和优化程序
  深入了解Oracle 9i Application Server(Oracle9iAS)
  管理、调整、备份和恢复Oracle9i数据库
  本书的前几版均在亚马逊上取得极佳的销售成绩,中译本((Oracle8完全参考手册》也是国内畅销书。本书
  在前几版的基础上结合Orade9i的新特性,更加全面地介绍了Oracle数据库,是读者全面了解Oracle的必备参考书。
  光盘内容介绍
  本书的电子版(英文版)
  本书实例所使用的表
  Oracle公司许可转载的Oracle9i Release 2新功能白皮书和相关文档
  本书是Oracle9i数据库的完全参考手册,全面讨论了Oracle9i数据库的相关特性和有效管理 Oracle9i数据库需要的所有相关知识。本书的主要内容包括:关键的数据库概念、SQL和SQL*PLUS、PL/SQL、对象关系数据库、Oracle中的Java等内容,并在附加的指南中给出了Oracle9i数据字典指南、Oracle9i优化程序指南、Oracle9iAS指南、数据库管理指南以及XML指南。书后的附录A中还列出了所有Oracle命令、关键字、产品、特性、函数等。随书所附光盘中还包含了大量有用的内容,方便读者使用。本书内容极其全面,深入浅出,是Oracle用户、Oracle初学者、Oracle9i DBA等各类Oracle使用者的必备参考书。

图书前言

Oracle是世界上使用最广泛的数据库。它可以运行在各种计算机上。Oracle的功能在这些机器上都是相同的,因此在一种机器上学习的Oracle知识,可应用到另一种机器上。这一特性受到了知识丰富的Oracle用户和开发人员的欢迎,并且也使你的Oracle知识和技能很容易地应用到其他机器系统上。
Oracle的文献非常完整,卷数众多,要用多张光盘才能完整记录这些文档。本书是第一本将所有主要的Oracle定义、命令、函数、特性和产品汇集在一起的参考书籍,是一本Oracle的每个用户和开发人员都应常备在手边的参考书籍。
本书主要面向以下三类读者:
Oracle的最终用户  Oracle当然可用来进行一些简单的操作,如录入数据和处理标准报表。但这样的用法会使其强大的功能无用武之地,这就像购买了一台高性能的跑车,然后用一匹马去拉它一样。通过本书前两个部分提供的介绍,即使是一位数据处理经验很少或没有数据处理经验的最终用户也能成为一个精通Oracle的用户,特别是在生成特定的英文报表、指导开发人员建立新特性、新功能以及改善业务活动的实际工作的速度和准确性方面更是如此。本书语言简炼、清晰,没有数据处理方面的晦涩难懂的术语,而且也不要求读者具有丰富的计算机或数据库方面的预备知识。本书将利用简单易学的形式以及众多的实际例子帮助初学者成为专家。
Oracle的初级开发人员  从Oracle提供的众多文档中找出一个关键的命令或概念是一项非常耗时的工作。本书试图提供一种掌握Oracle的更有组织、更有效的方法。本书有助于Oracle的初级开发人员快速掌握基本概念、克服常见的困难、澄清对本产品及关系开发方面的误解,并建立用于有效的应用程序开发的准则。
有经验的Oracle开发人员  与任何内容丰富且复杂的产品一样,Oracle中有很多重要的问题几乎都没有公布(如果有的话)。知识来源于长期的实践,但通常都不传授给他人。本书深入地研究了许多这样的问题(如UNION、INTERSECTION和MINUS操作符内的优先级、继承和CONNECT BY、利用外部连接消除NOT IN、实现对象关系和Java选项等)。书中揭示了许多常见的错误概念,推荐使用严格的命名约定、应用程序开发技术,并且还列出了设计与性能方面的一些问题。
本书结构
本书共有七个部分,随书附带一张光盘。
第一部分“关键数据库概念”中的章节基本上是为Oracle的用户(或新或老的用户,这些用户包括数据录入员到数据库管理员)准备的。这些章节定义了一些常用的词汇,最终用户和开发人员可借助这些词汇进行沟通,并保证开发工作的成功。这个导论性的部分是针对Oracle的开发人员和最终用户编写的。它探讨了关系数据库的基本思想和术语,并指出关系数据库应用程序的缺陷、经典的错误以及存在的机会。
第二部分“SQL和SQL*PLUS”讲授关系数据库系统和应用程序的理论和技术,包括SQL(结构化查询语言)和SQLPLUS。这个部分从与读者相关的几个数据处理知识假定开始,然后逐步深入,讨论一些较深的问题和复杂的技术。本部分的叙述有意识地采用了简洁的日常用语,再加上几个独特有趣的例子,绝对避免使用未定义的术语或行话。这个部分主要供Oracle的初级开发人员、初级用户,以及需要快速了解Oracle特性的人员阅读。它循序渐进地介绍SQL和Oracle的交互式查询实用程序SQLPLUS的基本功能。在阅读过这一部分后,读者应该能对所有SQL的关键字、函数和运算符有一个比较透彻的理解。读者还应该能生成复杂的报表,建立表并对Oracle数据库进行数据插入、更新和删除操作。
第二部分的后几章还介绍了SQLPLUS(Oracle的简单命令行界面)中的某些高级的方法,并深入地描述了Oracle的功能强大的新特性。该部分是专门为已经熟悉Oracle,特别是熟悉Oracle前几版的人员(并且认为Oracle的前几版不能方便地满足他们的要求)编写的。这些技术有的以前没有公布过,并且是被认为是不可能实现的。该部分所介绍的技巧和高级技术演示了怎样以强有力的和创造性的方式使用Oracle。这些内容包括利用分布式数据库功能、加载数据文件以及进行高级的基于文本的搜索等。该部分还包括最新的功能,诸如外部表、倒叙查询和新的数据类型和函数等。
第三部分“PL/SQL”主要介绍了PL/SQL的基本内容。主要内容包括PL/SQL结构、附加触发器、存储过程以及程序包等。
第四部分“对象关系数据库”介绍了大量面向对象的特性,如抽象数据类型、方法、对象视图、对象表、嵌套表、可变数组以及大对象。
第五部分“Oracle中的Java”介绍了Oracle数据库中引入的Java特性。该部分包括Java语法概述以及有关JDBC、SQLJ和Java存储过程的章节。
第六部分包含几个附加的指南,它们分别是Oracle9i数据字典指南、Oracle优化程序指南、Oracle9iAS指南、数据库管理及Oracle的XML指南。这些指南介绍了开发人员在其应用程序开发和管理中可能要涉及的各方面内容。
第七部分是“附录”,其中“按字母顺序排列的参考”是Oracle服务器的完全参考。阅读这个参考的介绍部分将使用户更为有效和容易地理解每个功能。该部分包含了最重要的Oracle命令、关键字、产品、特性和函数以及各内容的大量交叉引用。此参考主要用于Oracle开发人员和用户,不过在使用此参考前用户要对Oracle有所了解。为了最有效地利用参考中的每一项功能,应该先阅读此参考的前几页,这几页详细地说明了参考中包含和不包含的内容,以及怎样阅读所包含的条目。
本书所附的光盘含有本书的电子版(英文版)。利用这个电子版,可将本书中有价值的信息保存在自己的PC上,而本书的印刷版可放在办公室或家中。光盘中还包含本书中所有表的建立语句和插入的行。对于学习Oracle的人来说,可在自己的Oracle ID或一个实习ID上使用这些表,这使得试验或扩展这些例子就变得非常容易。

图书序言

本书的趣史
我第一次接触Oracle是在1982年,那时我的公司正在为设计和建立一个重要的商务应用程序而评估数据库管理系统。结果,我们的评估报告被ComputerWorld定性为曾经实施过的最“重量级”的DBMS研究报告。由于这份研究报告对我们调查过其产品的那些供应商给予了极不客气的评价,所以此报告不得不远远地拿到新西兰去印刷,而且就像《Christian Science Monitor》那样远在异乡出版。
我们调查了108个候选公司,后来压缩为16个,囊括了当时大多数主要的数据库供应商和所有类型的数据库。这些数据库的类型包括:网状、层次、关系以及其他类型。在完成了严格的最后一轮提问后,其中有两个参与选拔的主要供应商请求一定不要公布对它们产品研究的结果。来自第三个供应商的一个销售人员在某一次会议结束时放弃了。我们知道怎样提一些刁钻的问题。
Oracle当时还是Relational Software公司,其雇员不到25人,其客户也很少。然而,在完成了研究报告后,我们宣布Oracle是赢家。我们认为,从技术上说,Oracle 是市场上最好的产品,而且从其RSI指数可以看出,Oracle的管理团队有足够的能力领导公司走向成功。当时很少有人知道“关系”这个术语的真正含义,而知道这个术语的含义的人也没有给出正面的评价,我们这份激进的报告就是在这样一种环境下出炉的。许多没有远见的高级管理人员公开地批评我们的结论,并预言Oracle和关系数据库没有发展前景。
现在,Oracle已经成为世界上最大的数据库公司,第二大的软件公司。其关系数据库现在已经成为世界标准。
Koch Systems Corporation是我当时拥有和管理的公司,它成为Oracle的第一个增值分销商(Valued Added Reseller)。我们开发了世界上第一个重要的商用关系应用程序,这是一个称做THESIS的证券交易和记账系统。许多大银行和公司应用这个产品来管理他们的投资证券。连IBM也购买了THESIS,并且在IBM总部安装Oracle。但是,其内部有人强烈反对,毕竟IBM是当时占主导地位的数据库公司(IMS和DB2是其标志产品)。
Oracle一直在改进其产品,不断推出各种能够增加产品在商务领域中效率的特性和功能,而我们在Koch Systems的研究成果也为这些改进作出了贡献。Oracle的有些特性是为满足Oracle开发人员的需求而开发出来的,我们在应用程序设计和命名习惯方面对最终用户的毫无保留的支持已经影响了一代程序设计人员,这些程序设计人员可能在我们公司学习过Oracle,也可能阅读过我们发表的文章。
由于涉及了Oracle的开发和使用,所以我们对这个产品及其功能的熟悉和掌握程度是无人能及的。因为我总是喜欢与他人共享收获和知识(这有助于缩短掌握新技术和新思想的时间),以免他人再犯同样的错误,所以我决定将我们掌握的知识写成一本书。
本书构思于1988年,它汇集了Oracle系列产品使用的所有基本命令和基本技术,提供了利用Oracle和SQL开发应用程序的可靠指导。本书的第一部分是针对开发人员和最终用户的,目的是让他们可以在应用程序开发过程中具有共同的语言和共同的认识。让开发者和最终用户肩并肩地工作,这是开始构思本书时的初衷。
Linda Allen(旧金山的一个知名的出版代理商)将我介绍给了Liz Fisher,当时Osborne/McGraw-Hill的编辑。Liz非常欣赏这个想法。于是很快签订了出版合同,并计划于1989年出版第1版。但是McGraw-Hill的一个高级主管听说了这个计划,他立即取消了这个计划,因为他认为Oracle只是一种昙花一现的东西,没有发展前途。一年后,Oracle公司在规模上成倍增长而且那个高级主管离开了,这项出版计划又得以重新启动,最终在1990发行了本书第1版。
本书几乎立刻就成了这种类型的书中的第一名,并且将这个第一的位置保持了十年。
1990年7月,我就职于Oracle公司,管理它的Applications部门。我当上了公司的高级副总裁并指导这个部门(在许多有才能的人的帮助下)在世界范围内获得了成功。在Oracle任职期间,我还把Osborne/McGraw-Hill介绍给了Oracle的高级管理层,在抵制住Oracle的一位没看到这个主意的价值的副总裁的反对后, Oracle出版社诞生了。那位副总裁也在之后不久离开了Oracle。
现在Oracle出版社是世界上Oracle参考书籍的最主要出版者。
1992年,Bob Muller(一位既在Koch Systems 又在Oracle工作过的开发人员)负责了本书的全部技术修订,而我在Oracle公司只是负责对书中的变动部分进行审校。这样产生了《Oracle7:The Complete Reference》。这是Bob出版的第一本书籍,此后他又撰写了几本关于开发与数据库设计的畅销书籍。
1994年,我离开了Oracle公司去实现一个长期以来的梦想—当专职牧师,现在我已是伊利诺斯州西芝加哥Resurrection教堂(http://www.resurrection.org)的牧师。我继续写一些文章发表在《华尔街日报》和《Christianity Today》报上。最近我在英格兰出版了一本书,书名为《Country Parson誷 and Christianity Today》,出版社是Monarch Books。我还在Apropos担任主管,Apropos是一个重要的呼叫中心应用公司,但我不再从事Oracle应用开发方面的工作了。
也是在1994年,Kevin Loney,一位极知名的独立的Oracle顾问兼作者(http://www. kevinloney. com)负责本书第三版的修改和重写,并且自此以后就没有中断过这项工作。他负责编写了部分新内容(如附加的指南、PL/SQL、Java和ORDBMS等),并且将Oracle产品新特性完全融入了本书的所有章节。他还把许多读者的意见加入到本书的结构和内容之中,使本书成为读者和作者共同协作的成果。这些努力使《Oracle: The Complete Reference》仍然处于该领域的领先位置,并且仍然是Oracle的最完整的参考指南,它在范围、内容以及权威性方面仍然是无以伦比的。我确实喜欢Kevin的书籍,他的才智与勤奋给我留下了深刻的印象。
《Oracle: The Complete Reference》现在被译成八种语言,在全世界的开发者和Oracle产品用户的桌面上都可找到它。它不仅曾经是其同类产品中的第一名(已有两个版本发行,它曾经是第一名和第四名),而且也经常位于亚马逊图书销售的前一百名。它曾一度是巴西所有书籍中最畅销书的第七名。它在市场中的声望和持久的成功目前仍无人企及。
像Oracle本身一样,尽管一再有人预言它将失败,这本书还是留存下来并取得了成功。或许这段简史能够鼓舞那些目前面对压力却清楚地知道自己目标的所有人。
正如邱吉尔所说,“永不屈服,永不屈服,永不屈服—不论尊贵还是卑微,不论强大还是弱小—永远也不要屈服,直至胜利。”
George Byron Koch
Georgekoch@Georgekoch.com 
Wheaton, Illinois

作者简介

[美]Kevin Loney,George Koch:暂无简介

译者简介

钟鸣 石永平 郝玉洁:暂无简介

图书目录

第一部分  关键数据库概念
第1章  共享知识与成功 1
1.1  协作方法 3
1.2  每个人都有“数据” 3
1.3  Oracle的一般介绍 4
1.3.1  信息表 5
1.3.2  结构化查询语言 5
1.3.3  一个简单的Oracle查询 6
1.3.4  为何称为“关系型的” 7
1.4  某些常见的例子 8
第2章  关系数据库的危机 11
2.1  是否像所说的那样容易 12
2.2  风险是什么 12
2.3  新思维的重要性 13
2.4  代码、缩写及命名标准 14
2.4.1  为什么要使用代码而不用英语 14
2.4.2  用户反馈的益处 15
2.5  如何减少混乱 15
2.5.1  规范化 15
2.5.2  表和列的英文名称 19
2.5.3  用于表示数据的英文单词 20
2.6  名字和数据中的大写 21
2.7  名称的规范化 21
2.8  人是良好设计的决定因素 22
2.8.1  理解应用程序的任务 22
2.8.2  任务概要 23
2.9  理解数据 25
2.9.1  原子数据模型 26
2.9.2  原子业务模型 27
2.9.3  业务模型 27
2.9.4  数据录入 27
2.9.5  查询和报表 27
2.10  对象命名规范化 28
2.10.1  层次名完整性 28
2.10.2  外键 29
2.10.3  单数名字 29
2.10.4  简洁性 29
2.10.5  对象名词典 30
2.11  智能键和列值 30
2.12  戒律 31
第3章  SQL语言基础 33
3.1  风格 35
3.2  建立NEWSPAPER表 35
3.3  使用SQL从表中选择数据 35
3.4  select、from、where和order by 38
3.5  逻辑和值 40
3.5.1  单值测试 40
3.5.2  LIKE 43
3.5.3  值列表的简单测试 45
3.5.4  组合逻辑 47
3.6  where的另一种用法:子查询 48
3.6.1  从子查询中返回单个值 48
3.6.2  从子查询中返回值的列表 49
3.7  组合表 50
3.8  建立视图 52
第4章  对象关系型数据库基础 55
4.1  是否必须使用对象 56
4.2  为什么要使用对象 56
4.3  人人都拥有对象 57
4.3.1  抽象数据类型 57
4.3.2  嵌套表 58
4.3.3  可变数组 58
4.3.4  大对象 58
4.3.5  引用 59
4.3.6  对象视图 59
4.3.7  对象的命名约定 59
4.4  一个常见的对象例子 59
4.4.1  简单对象的结构 60
4.4.2  将记录插入CUSTOMER表中 62
4.4.3  从抽象数据类型中选择 63
4.5  面向对象的分析与设计 65
4.6  深入学习 65
第5章  启用Web的数据库简介 67
5.1  SQL的位置 69
5.2  Java的位置 69
5.3  Oracle Portal的位置 70
第二部分  SQL和SQL*PLUS
第6章  基本SQL*PLUS报表及命令 71
6.1  建立一个简单报表 73
6.1.1  ① remark 75
6.1.2  ② set headsep 76
6.1.3  ③ ttitle和btitle 76
6.1.4  column 76
6.1.5  ⑧ break on 77
6.1.6  ⑨ compute avg 78
6.1.7  ⑩ set linesize 78
6.1.8  set pagesize 78
6.1.9  set newpage 79
6.1.10  spool 79
6.1.11  /* */ 80
6.1.12  关于列标题的一些说明 80
6.2  其他特性 81
6.2.1  命令行编辑器 81
6.2.2  设置停顿 83
6.2.3  保存 84
6.2.4  存储 84
6.2.5  编辑 84
6.2.6  host 85
6.2.7  添加SQLPLUS命令 85
6.2.8  启动 85
6.3  检查SQLPLUS环境 86
6.4  构件 87
第7章  文本信息的收集与更改 89
7.1  数据类型 90
7.2  什么是串 90
7.3  表示法 91
7.4  连接符 92
7.5  如何剪切和粘贴串 93
7.5.1  RPAD 和LPAD 93
7.5.2  LTRIM、RTRIM和TRIM 94
7.5.3  组合两个函数 95
7.5.4  使用TRIM函数 97
7.5.5  添加多个函数 98
7.5.6  LOWER、UPPER和INITCAP 98
7.5.7  LENGTH 99
7.5.8  SUBSTR 100
7.5.9  INSTR 102
7.5.10  ASCII和CHR 106
7.6  在order by和where子句中使用串函数 107
7.6.1  SOUNDEX 108
7.6.2  国家语言支持 110
7.7  本章小结 110
第8章  数值处理 111
8.1  三种类型的数值函数 112
8.2  表示法 114
8.3  单值函数 114
8.3.1  加减乘除 114
8.3.2  NULL 115
8.3.3  NVL:空值置换 115
8.3.4  ABS:绝对值 116
8.3.5  CEIL 116
8.3.6  FLOOR 117
8.3.7  MOD 117
8.3.8  POWER 117
8.3.9  SQRT:求平方根 117
8.3.10  EXP、LN和LOG 118
8.3.11  ROUND和TRUNC 118
8.3.12  SIGN 119
8.3.13  SIN、SINH、COS、COSH、TAN、
TANH、ACOS、ATAN、ATAN2
和ASIN 120
8.4  组值函数 120
8.4.1  组值函数中的NULL 120
8.4.2  单值函数和组值函数的例子 121
8.4.3  AVG、COUNT、MAX、MIN和SUM 122
8.4.4  组值函数与单值函数的组合 122
8.4.5  STDDEV和VARIANCE 124
8.4.6  组值函数中的DISTINCT 124
8.5  列表函数 125
8.6  用MAX或MIN查找行 126
8.7  优先级和括号 127
8.8  本章小结 129
第9章  日期:过去、现在及日期之差 131
9.1  日期的运算 132
9.1.1  SYSDATE、CURRENT_
DATE和SYSTIMESTAMP 132
9.1.2  两个日期的差 133
9.1.3  增加月份 135
9.1.4  减去月份 135
9.1.5  GREATEST和LEAST 136
9.1.6  NEXT_DAY 136
9.1.7  LAST_DAY 138
9.1.8  两个日期间的MONTHS_BETWEEN 138
9.1.9  组合使用日期函数 139
9.2  日期计算中的ROUND和TRUNC 139
9.3  TO_DATE和TO_CHAR格式 140
9.3.1  最常见的TO_CHAR错误 146
9.3.2  NEW_TIME: 切换时区 146
9.3.3  TO_DATE 计算 147
9.4  where子句中的日期 149
9.5  处理多个世纪 150
9.6  使用EXTRACT函数 150
9.7  使用TIMESTAMP数据类型 151
第10章  转换函数与变换函数 153
10.1  基本转换函数 155
10.1.1  数据类型的自动转换 157
10.1.2  使用自动转换的注意事项 159
10.2  几个特殊的转换函数 159
10.3  变换函数 159
10.3.1  TRANSLATE 160
10.3.2  DECODE 160
10.4  本章小结 161
第11章  分组函数 163
11.1  group by和having的用法 164
11.1.1  增加一个order by 165
11.1.2  执行顺序 166
11.2  分组视图 167
11.3  分组视图的功能 169
11.3.1  视图中的order by 170
11.3.2  having子句中的逻辑 171
11.3.3  对列和分组函数进行排序 172
11.3.4  连接列 173
11.4  本章小结 173
第12章  当一个查询依赖于另一个查询时 175
12.1  高级子查询 176
12.1.1  相关子查询 176
12.1.2  并列的逻辑测试 177
12.1.3  EXISTS及其相关子查询的使用 179
12.2  外部连接 180
12.2.1  Oracle9i以前版本中的外部连接
的语法 180
12.2.2  Oracle9i中外部连接的语法 182
12.2.3  用外部连接代替NOT IN 183
12.2.4  用NOT EXISTS代替NOT IN 185
12.3  NATURAL和INNER连接 185
12.4  UNION、INTERSECT和MINUS 186
12.4.1  IN子查询 189
12.4.2  UNION、INTERSECT 和
MINUS的限制 189
第13章  一些复杂技术 191
13.1  创建一个复杂的视图 192
13.2  使用临时表 193
13.3  使用ROLLUP、GROUPING和CUBE 194
13.4  族树和connect by 197
13.4.1  排除个体和分支 201
13.4.2  向根遍历 203
13.4.3  基本规则 204
第14章  用SQL*PLUS建立报表 207
14.1  高级格式化 208
14.1.1  break on 209
14.1.2  break on 中列的顺序 211
14.1.3  分隔行 211
14.1.4  添加视图 211
14.1.5  使用ttitle和btitle的列 212
14.1.6  关于break on和compute更多的内容 215
14.2  set termout off和set termout on 219
14.3  SQLPLUS中的变量 219
14.4  数值格式 221
14.5  使用mask.sql 222
14.6  显示所有内容和假脱机 223
14.7  折到新行上 223
14.8  其他的报表控制 225
第15章  更改数据:插入、更新、
合并和删除 227
15.1  插入 228
15.1.1  插入时间 228
15.1.2  用select插入 229
15.1.3  使用APPEND提示改进插入的性能 230
15.2  rollback、commit和autocommit 230
15.2.1  使用savepoint 231
15.2.2  隐式提交 232
15.2.3  自动回退 232
15.3  多行插入 232
15.4  delete命令 236
15.5  update命令 237
15.5.1  嵌入选择语句进行更新 238
15.5.2  用空值更新 239
15.6  使用merge命令 239
第16章  函数和变量的高级应用 241
16.1  order by中的函数 242
16.2  条形图和曲线图 242
16.3  使用TRANSLATE 244
16.4  复杂的剪切和粘贴 245
16.5  计算大串中串出现的次数 249
16.6  关于变量的其他问题 250
第17章  SQL中的DECODE和CASE:
if、then和else 253
17.1  if、then、else 254
17.2  通过DECODE替换值 257
17.3  DECODE中的DECODE 257
17.4  DECODE中的大于和小于 260
17.5  使用CASE 261
第18章  建立、删除以及更改表和视图 265
18.1  建立表 266
18.1.1  字符宽度和数值精度 267
18.1.2  在插入时进行舍入 268
18.1.3  create table的约束 270
18.1.4  指定索引表空间 271
18.1.5  命名约束 272
18.2  删除表 272
18.3  更改表 273
18.3.1  增加或修改列的规则 274
18.3.2  删除列 275
18.4  建立视图 276
18.4.1  视图的稳定性 276
18.4.2  视图中的order by 277
18.4.3  建立只读视图 278
18.5  从一个表建立另一个表 278
18.6  建立索引编排表 280
18.7  使用分区表 280
18.7.1  建立分区表 281
18.7.2  列表分区 283
18.7.3  索引分区 284
18.7.4  管理分区表 284
18.7.5  从分区中直接查询 285
18.8  表的联机重定义 285
第19章  授权 289
19.1  用户、角色和权限 290
19.1.1  建立用户 290
19.1.2  口令管理 290
19.1.3  三种标准的角色 293
19.1.4  grant命令的格式 294
19.1.5  撤销权限 294
19.2  用户可以授予何种权限 295
19.2.1  利用connect移动到另一用户 296
19.2.2  创建同义词 299
19.2.3  使用未授权的权限 299
19.2.4  权限的传递 299
19.2.5  创建角色 300
19.2.6  为角色授权 301
19.2.7  将一个角色授予另一个角色 301
19.2.8  给角色加口令 302
19.2.9  删除角色的口令 302
19.2.10  启用和禁用角色 302
19.2.11  撤销角色的权限 303
19.2.12  删除角色 303
19.2.13  给指定的列授予UPDATE权限 304
19.2.14  撤销对象权限 304
19.2.15  用户安全性 304
19.2.16  给公众授予访问权 305
19.3  有限资源的授权 306
19.4  高级选项 306
第20章  改变Oracle环境 307
20.1  索引 308
20.1.1  建立索引 308
20.1.2  加强唯一性 309
20.1.3  建立位图索引 309
20.1.4  何时建立索引 310
20.1.5  索引列的变化 310
20.1.6  一个表能使用多少个索引 311
20.1.7  在数据库中放置索引 311
20.1.8  重建索引 312
20.1.9  基于函数的索引 312
20.2  数据库的表空间和结构 313
20.2.1  建立表空间 313
20.2.2  临时表空间 314
20.3  回退段和系统管理的撤销 315
20.3.1  数据库怎样使用回退段 315
20.3.2  使用撤销表空间 315
20.4  簇 315
20.5  序列 317
第21章  用SQL*Loader加载数据 319
21.1  控制文件 320
21.2  启动加载 321
21.3  控制文件语法说明 325
21.4  管理数据加载 326
21.5  优化数据加载 327
21.6  Oracle9i的增强 329
第22章  访问远程数据 331
22.1  数据库链接 332
22.1.1  数据库链接是如何工作的 332
22.1.2  为远程查询使用数据库链接 333
22.1.3  对同义词和视图使用数据库链接 333
22.1.4  为远程更新操作使用数据库链接 334
22.1.5  数据库链接的语法 335
22.2  为位置透明性使用同义词 337
22.3  在视图中使用User伪列 338
22.4  动态链接:使用SQLPLUS的拷贝命令 340
22.5  连接到远程数据库 341
第23章  实体化视图 343
23.1  功能 344
23.2  要求的系统权限 344
23.3  要求的表权限 345
23.4  只读与可更新 345
23.5  建立实体化视图的语法 345
23.5.1  基于RowID或基于主键的实体
化视图 348
23.5.2  建立基础对象 349
23.5.3  用实体化视图更改查询执行路径 350
23.6  刷新实体化视图 350
23.6.1  可进行何种刷新 350
23.6.2  自动刷新 353
23.6.3  人工刷新 354
23.7  建立实体化视图日志的语法 358
23.7.1  所需的系统权限 359
23.7.2  本地对象与远程对象的建立 359
23.8  更改实体化视图和日志 360
23.9  删除实体化视图和日志 360
第24章  使用Oracle Text进行文本搜索 361
24.1  将文本添加到数据库 362
24.2  文本查询和文本索引 363
24.2.1  文本查询 363
24.2.2  可使用的文本查询表达式 364
24.2.3  单词的精确匹配搜索 364
24.2.4  多个单词精确匹配的搜索 365
24.2.5  短语精确匹配的搜索 368
24.2.6  搜索互相接近的词 369
24.2.7  在搜索中使用通配符 369
24.2.8  搜索具有相同词根的词 370
24.2.9  模糊匹配搜索 370
24.2.10  搜索发音相似的词 371
24.2.11  使用ABOUT运算符 372
24.2.12  索引同步 372
24.3  索引集 373
第25章  使用外部表 375
25.1  访问外部数据 376
25.2  建立外部表 377
25.3  外部表的局限性、好处和潜在的用途 384
第26章  使用倒叙查询 387
26.1  基于时间的倒叙查询例子 388
26.2  保存数据 389
26.3  基于SCN的倒叙例子 391
第三部分  PL/SQL
第27章  PL/SQL简介 393
27.1  PL/SQL概述 394
27.2  声明部分 394
27.3  可执行命令部分 397
27.3.1  条件逻辑 398
27.3.2  循环 399
27.3.3  CASE语句 405
27.4  异常处理部分 406
第28章  触发器 409
28.1  必需的系统权限 410
28.2  必需的表权限 410
28.3  触发器类型 410
28.3.1  行级触发器 410
28.3.2  语句级触发器 411
28.3.3  BEFORE和AFTER触发器 411
28.3.4  INSTEAD OF触发器 411
28.3.5  模式触发器 411
28.3.6  数据库级触发器 411
28.4  触发器语法 412
28.4.1  各种DML触发器类型的组合使用 413
28.4.2  设置插入值 415
28.4.3  维护复制的数据 415
28.4.4  定制错误条件 416
28.4.5  在触发器中调用过程 418
28.4.6  触发器的命名 418
28.4.7  创建DDL事件触发器 419
28.4.8  创建数据库事件触发器 424
28.5  启用和禁用触发器 424
28.6  替换触发器 425
28.7  删除触发器 425
第29章  过程、函数和程序包 427
29.1  必需的系统权限 428
29.2  必需的表权限 429
29.3  过程与函数 429
29.4  过程与程序包 430
29.5  建立过程的语法 430
29.6  建立函数的语法 432
29.6.1  在过程中引用远程表 433
29.6.2  调试过程 434
29.6.3  创建自己的函数 435
29.6.4  定制错误条件 436
29.6.5  过程和函数的命名 437
29.7  建立程序包的语法 438
29.8  查看过程化对象的源代码 440
29.9  编译过程、函数和程序包 441
29.10  替换过程、函数和程序包 442
29.11  删除过程、函数和程序包 442
第四部分  对象关系数据库
第30章  实现类型、对象视图和方法 443
30.1  再论抽象数据类型 444
30.1.1  抽象数据类型的安全性 444
30.1.2  检索抽象数据类型属性 447
30.2  实现对象视图 448
30.2.1  通过对象视图操纵数据 450
30.2.2  使用INSTEAD OF触发器 451
30.3  方法 453
30.3.1  建立方法的语法 453
30.3.2  管理方法 455
第31章  收集器 457
31.1  可变数组 458
31.1.1  建立可变数组 458
31.1.2  描述可变数组 458
31.1.3  向可变数组中插入记录 459
31.1.4  从可变数组中选择数据 460
31.2  嵌套表 463
31.2.1  向嵌套表中插入数据 464
31.2.2  查询嵌套表 465
31.3  嵌套表和可变数组的管理问题 466
31.3.1  管理大集合 466
31.3.2  收集器的可变性 467
31.3.3  数据位置 467
第32章  使用大对象 469
32.1  数据类型 470
32.2  为LOB数据指定存储参数 471
32.3  LOB值的处理和选择 472
32.3.1  初始化值 473
32.3.2  用子查询插入数据 474
32.3.3  更新LOB数据 474
32.3.4  使用串函数处理LOB值 475
32.3.5  使用DBMS_LOB处理LOB值 476
32.3.6  删除LOB 488
第33章  面向对象的高级概念 489
33.1  行对象与列对象 490
33.2  对象表与OID 490
33.2.1  把行插入对象表 491
33.2.2  从对象表中选择值 491
33.2.3  从对象表中更新和删除数据 492
33.2.4  REF函数 492
33.2.5  使用DEREF函数 493
33.2.6  VALUE函数 495
33.2.7  无效的引用 496
33.3  具有REF的对象视图 496
33.3.1  对象视图的简要回顾 496
33.3.2  包含引用的对象视图 497
33.4  对象PL/SQL 500
33.5  数据库中的对象 501
第五部分  Oracle中的Java
第34章  Java简介 503
34.1  Java与PL/SQL概述 504
34.2  准备 505
34.3  声明 505
34.4  可执行命令 505
34.4.1  条件逻辑 506
34.4.2  循环 509
34.4.3  异常处理 511
34.4.4  保留字 511
34.5  类 512
第35章  JDBC和SQLJ程序设计 517
35.1  准备 518
35.1.1  NT用户所需的额外步骤 518
35.1.2  连接测试 519
35.2  JDBC类的使用 519
35.3  SQLJ 525
35.3.1  SQLJ的额外的设置步骤 525
35.3.2  测试SQLJ配置 526
35.4  使用SQLJ类 526
第36章  Java存储过程 531
36.1  将类装入数据库 533
36.2  怎样访问类 534
第六部分  附加的指南
第37章  Oracle9i数据字典指南 537
37.1  关于名称的说明 538
37.2  路线图:DICTIONARY和DICT_
COLUMNS 538
37.3  从表、列、视图、同义词和序列中
进行选择 540
37.3.1  目录:USER_CATALOG 540
37.3.2  对象:USER_OBJECTS 540
37.3.3  表:USER_TABLES 541
37.3.4  列:USER_TAB_COLUMNS 542
37.3.5  视图:USER_VIEWS 543
37.3.6  同义词:USER_SYNONYMS 545
37.3.7  序列:USER_SEQUENCES 546
37.4  约束和注释 546
37.4.1  约束:USER_CONSTRAINTS 546
37.4.2  约束列:USER_CONS_COLUMNS 547
37.4.3  约束异常:EXCEPTIONS 548
37.4.4  表的注释:USER_TAB_
COMMENTS 549
37.4.5  列注释:USER_COL_COMMENTS 550
37.5  索引和簇 550
37.5.1  索引:USER_INDEXES 550
37.5.2  索引列:USER_IND_COLUMNS 551
37.5.3  簇:USER_CLUSTERS 552
37.5.4  簇列:USER_CLU_COLUMNS 553
37.6  抽象数据类型、与ORDBMS有关
的结构和LOB 553
37.6.1  抽象数据类型:USER_TYPES 553
37.6.2  LOB:USER_LOBS 555
37.7  数据库链接和实体化视图 556
37.7.1  数据库链接:USER_DB_LINKS 556
37.7.2  实体化视图 556
37.7.3  实体化视图日志:USER_MVIEW
_LOGS 558
37.8  触发器、过程、函数和程序包 558
37.8.1  触发器:USER_TRIGGERS 558
37.8.2  过程、函数和程序包:USER_
SOURCE 559
37.9  维 560
37.10  包括分区和子分区的空间分配和使用 561
37.10.1  表空间:USER_TABLESPACES 561
37.10.2  空间限额:USER_TS_QUOTAS 562
37.10.3  段和区:USER_SEGMENTS
和USER_EXTENTS 562
37.10.4  分区和子分区 563
37.10.5  可用空间:USER_FREE_SPACE 565
37.11  用户和权限 566
37.11.1  用户:USER_USERS 566
37.11.2  资源限制:USER_RESOURCE
_LIMITS 566
37.11.3  表的权限:USER_TAB_PRIVS 566
37.11.4  系统权限:USER_SYS_PRIVS 567
37.12  角色 567
37.13  审计 568
37.14  其他功能 570
37.15  监控:V$动态性能表 570
37.15.1  CHAINED_ROWS 570
37.15.2  PLAN_TABLE 571
37.15.3  相关性:USER_DEPENDEN-
CIES和IDEPTREE 571
37.15.4  只属于DBA的视图 571
37.15.5  Oracle Label Security 571
37.15.6  SQL*Loader直接加载视图 571
37.15.7  国家语言支持视图 572
37.15.8  库 572
37.15.9  异构服务 572
37.15.10  索引类型和运算符 572
37.15.11  大纲 573
第38章  Oracle优化程序指南 575
38.1  选择优化程序 576
38.2  访问表的操作 577
38.2.1  TABLE ACCESS FULL 577
38.2.2  TABLE ACCESS BY ROWID 578
38.2.3  相关提示 578
38.3  使用索引的操作 578
38.3.1  INDEX UNIQUE SCAN 579
38.3.2  INDEX RANGE SCAN 579
38.3.3  何时使用索引 580
38.3.4  组合多个索引扫描的输出 583
38.3.5  相关提示 584
38.3.6  索引的其他优化问题 585
38.4  处理数据集的操作 585
38.4.1  行的分类 586
38.4.2  行分组 586
38.4.3  使用RowNum的操作 587
38.4.4  UNION、MINUS和INTERSECT 588
38.4.5  为更新而选择行 591
38.4.6  从视图进行选择 591
38.4.7  从子查询中进行选择 592
38.4.8  其他优化问题 593
38.5  执行连接的操作 593
38.5.1  Oracle怎样处理多于两个表的连接 594
38.5.2  MERGE JOIN 594
38.5.3  NESTED LOOPS 596
38.5.4  HASH JOIN 597
38.5.5  处理外部连接 598
38.5.6  相关提示 598
38.5.7  其他优化问题 601
38.6  显示执行路径 602
38.6.1  使用set autotrace on 602
38.6.2  使用explain plan 605
38.7  杂项操作 608
38.7.1  过滤行 608
38.7.2  使用connect by子句的查询 608
38.7.3  使用序列的查询 610
38.7.4  使用数据库链接的查询 610
38.7.5  使用簇的查询 610
38.7.6  相关提示 611
38.7.7  其他优化问题 611
38.8  本章小结 612
第39章  Oracle9iAS指南 613
39.1  通信服务 615
39.1.1  Apache增强的通信服务的功能 615
39.1.2  通信服务 — IIS 617
39.2  内容管理服务 617
39.3  Ultra Search 618
39.4  业务逻辑服务 619
39.4.1  用于Java的Oracle Business
Components 619
39.4.2  Oracle PL/SQL 619
39.4.3  Oracle Forms Services 619
39.5  表示服务 619
39.5.1  Apache JServ 620
39.5.2  Oracle JSP 620
39.5.3  Oracle PSP 621
39.5.4  Perl Interpreter 621
39.6  业务智能服务 621
39.6.1  Oracle Reports Services 621
39.6.2  Oracle Discoverer 4i Viewer/
Oracle9iAS Discoverer 621
39.7  门户服务 622
39.7.1  Oracle Portal 622
39.7.2  Portal-to-Go 622
39.7.3  9i Dynamic Services 622
39.8  开发人员工具包 623
39.8.1  Oracle Java Messaging Service工具包 623
39.8.2  Oracle SQLJ 623
39.8.3  Oracle XML Developer誷 Kit 623
39.8.4  Oracle LDAP Developer誷 Kit 624
39.9  高速缓存服务 624
39.9.1  Oracle Database Cache 624
39.9.2  Oracle Web Cache 625
39.9.3  Oracle9iAS Clickstream分析 626
39.10  系统服务 626
39.10.1  Oracle Enterprise Manager 627
39.10.2  Oracle Advanced Security 627
39.11  数据库服务 627
39.12  启动、停止和重启iAS 628
第40章  数据库管理指南 631
40.1  建立数据库 632
40.2  启动和停止数据库 633
40.3  设置内存区域尺寸并管理内存区 634
40.4  分配和管理对象的空间 635
40.4.1  存储子句的含义 636
40.4.2  表段 637
40.4.3  索引段 638
40.4.4  回退段和系统管理的撤销 638
40.4.5  临时段 639
40.4.6  可用空间 640
40.4.7  定义数据库对象的大小 641
40.5  建立和管理回退段 643
40.5.1  激活回退段 643
40.5.2  怎样确定回退段的最大尺寸 644
40.5.3  监控撤销表空间 645
40.5.4  怎样将事务处理分配给指定的
回退段 645
40.6  进行备份 645
40.6.1  Export和Import 646
40.6.2  Export 646
40.6.3  Import 651
40.6.4  脱机备份 653
40.6.5  联机备份 654
40.6.6  Recovery Manager 656
40.7  下一步 657
第41章  XML指南 659
41.1  文档类型定义、元素及属性 660
41.2  XML Schema 663
41.3  利用XSU来选择、插入、更新和
删除 XML值 665
41.3.1  用XSU进行插入、更新和删除处理 666
41.3.2  XSU和Java 667
41.3.3  定制查询处理 668
41.4  使用XMLType 669
41.5  其他功能 671
第七部分  附   录
附录A  按字母顺序排列的参考 673
附录B  光盘说明 975

教学资源推荐
作者: [美] 亚伯拉罕·西尔伯沙茨 (Abraham Silberschatz) [美] 亨利·F. 科思 (Henry F. Korth) [印] S. 苏达尔尚(S. Sudarshan) 著
作者: (葡)Luis Torgo 著
作者: 石彦芳 李丹 主编 赵占坤 赵滨 薛玉倩 副主编 周檬 苏默 高秀艳 石建国 参编
作者: Nello Cristianini John Shawe-Taylor
参考读物推荐
作者: [英]阿列克萨·武科蒂奇(Aleksa Vukotic),[美]尼基·瓦特(Nicki Watt),[美]塔里克·阿贝卓布(Tareq Abedrabbo),[美]多米尼克·福克斯(Dominic Fox),[美]乔纳斯·帕特纳(Jonas Partner)著
作者: Scott Urman