热门关键字:  听力密码  听力密码  新概念美语  单词密码  巧用听写练听力
图书信息

Oracle数据库实用教程(第二版)

中国水利水电出版社
    【作 者】唐远新 曲卫平 李晓峰 等编著 【I S B N 】978-7-5084-6571-0 【责任编辑】李 炎 【适用读者群】本科 【出版时间】2010-07-19 【开 本】16开 【装帧信息】平装(光膜) 【版 次】第1版第1次印刷 【页 数】320 【千字数】488 【印 张】20 【定 价】32 【丛 书】21世纪高等学校精品规划教材 【备注信息】
图书详情

    本书第一版于2005年出版,第二版根据Oracle数据库技术的发展,结合作者多年实际工程研发与教学经验,并考虑到读者的反馈信息,对各章节内容、结构等进行了修订、调整、完善和补充。全书共11章,主要内容包括Oracle 10g体系结构、Oracle数据库常用工具、网络连接配置与系统安全、Oracle数据库创建与表空间维护、表、索引与视图、其他常用方案对象、Oracle支持的SQL、PL/SQL、数据管理、数据库管理等,并在附录中给出了Oracle 10g在不同环境下的安装配置与卸载过程。

    本书内容兼顾Windows和Linux平台,对有差异处分开撰写。本书带有大量的例题和习题,通过对例题与习题的剖析能快速提高读者对Oracle数据库各项技术的运用能力。

    本书可作为高等院校教材,也可供Oracle数据库管理员、数据库系统设计和开发人员参考。

    1.涵盖Oracle主要开发技术,知识深度合理,适合作为Oracle数据库课程教材

    2.按照工程项目开发需要的知识顺序编排,专注于工程实践中必须掌握的Oracle技术

    3.注重技术应用,例题体系化,深入实用,循序分析,真实项目习题贯穿全书

    4.兼顾Windows和Linux平台,对有差异部分分开撰写

    提供丰富相关资源(电子教案、例题程序完整源代码等)

    本书第一版于2005年出版,第二版根据Oracle数据库技术的发展,结合作者多年实际工程研发与教学经验,并考虑到读者的反馈信息,对各章节内容、结构等进行了修订、调整、完善和补充。主要修订思路及内容如下:专注于Oracle数据库应用技术、强化SQL与PL/SQL开发内容,兼顾Windows与Linux平台,突出原理指导下的实例分析与应用,按照工程项目开发需要的知识顺序编排内容。一句话概括,就是涵盖主要开发技术,强化技术应用。

    本书默认的主机字符串为orcl。安装Oracle数据库时,系统默认的数据库名称即为orcl,在安装结束后会在服务器计算机上自动创建一个名为orcl的主机字符串。如果是以客户端计算机连接到Oracle数据库,请参照3.1.3节“Oracle Net客户端配置”在客户机配置名为orcl的主机字符串。

    在Oracle数据库的学习过程中,要使用到不同账户连接数据库,主要有系统管理员账户SYS和SYSTEM,示例数据库中的人力资源账户HR和SCOTT。为便于说明问题,本书将SYS和SYSTEM的口令分别设置为syspwd、systempwd,在SQL*Plus中执行如下命令:

    CONN /@orcl AS SYSDBA

    ALTER USER SYS IDENTIFIED BY syspwd;

    ALTER USER SYSTEM IDENTIFIED BY systempwd;

    解锁账户SCOTT和HR,并修改它们的口令分别为tiger和hrpwd,执行如下命令:

    ALTER USER SCOTT ACCOUNT UNLOCK;

    ALTER USER HR ACCOUNT UNLOCK;

    ALTER USER SCOTT IDENTIFIED BY tiger;

    ALTER USER HR IDENTIFIED BY hrpwd;

    SCOTT账户是本书,也是大部分从应用开发角度介绍Oracle数据库的书籍中采用的示例账户,这个用户下有几个结构简单、数据量较少的表,包括雇员、部门、工资等级等。HR账户下也有几个与人力资源相关的表,不过表结构更复杂,关键是数据经过了精心设计,数据量更大,在讲解SQL高级编程、PL/SQL编程时用得比较多。

    因在例子中可能修改表中数据、修改表的结构,甚至将表删除,应在数据库安装完成后建立系统示例方案原始数据的备份,如以下语句所示(SQL>为命令提示符,不要输入):

    SQL> CONN scott/tiger@orcl

    SQL> CREATE TABLE emp_bak AS SELECT * FROM emp;

    SQL> CREATE TABLE dept_bak AS SELECT * FROM dept;

    限于篇幅,不是所有例子都有执行结果的屏幕截图。本书中大部分例子代码都以“CONN 用户名/口令@主机字符串”开始,明确地告诉读者后面的语句是在哪个用户账号下执行的。有经验的读者一看表名就知道这条语句该在哪个用户下执行,但对初学者而言,例子中的SQL语句到底该在哪个用户下执行有时是件很困惑的事情(关键在初学时不熟悉语句中的表属于哪个用户方案)。

    本书的大部分例子都比较长,需要读者耐心的读完。之所以设计了代码较长的例子,主要的考虑是应该反映主要语法现象和应用注意点,从而接近工程实际应用,给初学者一个可以参考的代码框架。

    在本书中,很多例子在创建数据库方案对象时,前面都有一条删除这个对象的DROP语句。这主要是基于两方面考虑,一是这个对象可能前面创建过,通过新的语法形式创建之前应该先删除该对象,否则系统会返回一个错误(ORA-00955:名称已由现有对象使用);二是强化一个用法。在实际工程中,除了建立正常的创建方案对象的SQL脚本外,常常还要创建删除系统中相关方案对象的SQL脚本,比如删除相关表、删除视图、删除数据的脚本等,这些脚本文件一般在系统重建或初始化时运行以成批地删除数据或方案对象,为完成重建或初始化的SQL语句能顺利执行创造条件。还有,信息系统一般都会有一段试运行,试运行完成后要删除测试数据(重建表)以正式建立系统,都会经历先DELETE(DROP)然后INSERT(CREATE)这样的操作过程。

    在每章的最后,都给出了开放式的真实问题,没有给出具体的求解方法和程序代码,读者可以在书中文字描述的基础上结合一个ERP软件系统应具备的功能和行为,试着去深入、全面地思考和解决给出的问题。笔者的初衷是通过它提高初学者思考问题、解决问题的实际应用能力。限于篇幅,不可能对问题描述很细,但对于读者理解该问题已经足够。对于没有提到的约束和相关材料,读者可以自己创设约束条件,只要符合逻辑和接近真实应用即可。

    关于SELECT语句,初学者往往觉得有点不得要领,因为子查询特别是相关子查询就够让初学者头疼的了,Oracle还针对特定的应用场合和需要设计了分区与子分区查询、集合运算、内嵌视图、层次树型查询、分步运算与存储的with子句、数据聚集的ROLLUP与CUBE、闪回数据查询和闪回版本查询、记录加锁的FOR UPDATE子句等。所谓万变不离其宗,只要读者抓住两点,一是SELECT语句的根本作用是检索数据,只要在FROM子句中出现的是一个关系(可以是表、视图或临时数据集,如内嵌视图),在语法上和理论上就是正确的,该语句就没有语法错误,可以执行;二是在工程实践中存在各方面复杂的问题,需要对标准SQL的SELECT语法进行扩展,以解决实际问题。读者只要注意到这些不同形式的SELECT语句是专门用于解决某个特定问题的,就能拨云见日,理出个头绪而不会把它们放到一起把自己头脑搞乱。对于其他SQL语句的复杂多样的语法形态,也可以这么去认识和理解。从这个角度,读者也就明白为什么企业级的信息系统建设,大部分都选用Oracle数据库作为开发和运行的数据平台。

    关于内容取舍,本书将DBA及应用开发人员所需的Oracle SQL、PL/SQL知识做了较全面的介绍,通过大量示例及注释说明了各知识点的应用,因此本书满足大部分读者作为学习Oracle数据库入门及开发中小规模数据库应用系统的需要。Oracle公司有系列的产品,可用“博大精深”来形容Oracle在数据库和ERP领域的技术优势和产品优势,它在每个应用需要的方面都有复杂完善的专业产品,每个产品都有值得用大部头一写的内容,此时需要读者去查阅相关文档做进一步的深入学习。即便如此,本书仍然力求做到给读者深入学习和应用打下一个坚实的基础。

    本书只涉及Oracle数据库产品,未对J2EE或.Net架构下的应用开发做任何介绍,在这些方面,有各种专业书籍供读者选择。但是本书对初学者感到棘手的在Linux环境下安装配置Oracle及在该环境下的数据库创建等相关内容做了说明。一旦将运行环境构建起来,SQL及PL/SQL的开发在Windows和Linux环境下将不再有大的差别。

    本教材由哈尔滨理工大学计算机科学与技术学院唐远新编写大纲并进行所有章节内容的总篡工作,首都师范大学信息工程学院周丽娟、安徽理工大学计算机科学与工程学院曲卫平、哈尔滨工业大学华德学院李晓峰、哈尔滨理工大学计算机科学与技术学院尹芳和任相花、哈尔滨理工大学软件学院苗世迪等老师(排名不分先后)参加了各章内容的编撰工作。各章主要执笔编撰分工如下:第1章由唐远新、苗世迪编写,第2章由李晓峰、苗世迪编写,第3章由周丽娟、李晓峰编写,第4章由任相花编写,第5章由尹芳编写,第6章由苗世迪编写,第7章由周丽娟编写,第8章由唐远新、任相花编写,第9章由曲卫平编写,第10章由李晓峰编写,第11章由李晓峰、周丽娟编写,附录由唐远新、尹芳编写。孙亚静、程健、姚丽华参加了本书的校稿和部分代码测试工作。在本书的编写过程中,得到了中国水利水电出版社北京万水电子信息有限公司有关领导和编辑的大力支持和帮助,在此表示衷心的感谢!

    由于笔者水平有限,再加上Oracle数据库产品及技术的快速发展,书中难免有不当之处,敬请各位同仁和广大读者批评指正,联系邮箱为oracle_java@sina.com。

    编 者

    2009年4月

    前言

    第1章 Oracle 10g体系结构 1
    1.1 Oracle 10g体系结构概述 1
    1.2 Oracle服务器的内存结构 3
    1.2.1 系统全局区 3
    1.2.2 程序全局区 4
    1.3 Oracle服务器的进程结构 5
    1.3.1 服务器端后台进程 5
    1.3.2 服务器进程结构 7
    1.4 Oracle数据库的物理结构 8
    1.4.1 数据文件 8
    1.4.2 重做日志文件 9
    1.4.3 控制文件 9
    1.4.4 其他文件 10
    1.5 Oracle数据库的逻辑结构 11
    1.5.1 表空间 11
    1.5.2 段 14
    1.5.3 区间 15
    1.5.4 数据块 15
    1.6 Oracle 10g网格基础架构 15
    1.7 数据字典 16
    1.7.1 数据字典 16
    1.7.2 动态性能监视视图 16
    1.7.3 常用数据字典 17
    本章小结 19
    综合应用与习题一 20
    第2章 Oracle数据库常用工具 21
    2.1 SQL*Plus 21
    2.1.1 SQL*Plus的作用 21
    2.1.2 SQL*Plus的启动和退出 21
    2.1.3 SQL*Plus常用命令 22
    2.2 iSQL*PLUS 28
    2.3 企业管理器 30
    2.3.1 企业管理器 30
    2.3.2 Oracle企业管理器 32
    本章小结 33
    综合应用与习题二 33
    第3章 网络连接配置与系统安全 35
    3.1 Oracle Net 35
    3.1.1 Oracle Net概述 35
    3.1.2 服务器监听程序配置 36
    3.1.3 Oracle Net客户端配置 37
    3.2 系统与对象权限管理 39
    3.2.1 数据库系统特权 40
    3.2.2 对象权限 41
    3.2.3 数据库系统特权的授予与回收 42
    3.2.4 对象权限的授予与回收 43
    3.3 用户与角色 45
    3.3.1 配置身份验证 45
    3.3.2 创建与管理用户 47
    3.3.3 角色管理 49
    3.4 概要文件 51
    3.4.1 创建概要文件 51
    3.4.2 分配概要文件 55
    3.5 同义词 56
    3.6 建立安全策略 57
    本章小结 58
    综合应用与习题三 58
    第4章 Oracle数据库创建与表空间维护 62
    4.1 创建Oracle数据库 62
    4.1.1 创建Oracle数据库概述 62
    4.1.2 OFA与OMF 63
    4.1.3 使用数据库配置助手(DBCA)
    创建数据库 65
    4.1.4 手工创建Oracle数据库 67
    4.1.5 数据库创建失败后的处理 72
    4.2 管理表空间 72
    4.2.1 表空间管理概述 72
    4.2.2 表空间的创建与删除 74
    4.2.3 表空间维护 76
    4.2.4 回退段的创建与删除 78
    本章小结 79
    综合应用与习题四 79
    第5章 表 81
    5.1 Oracle数据库方案对象与数据类型 81
    5.1.1 Oracle数据库方案对象 81
    5.1.2 Oracle数据类型 82
    5.2 创建表的语法 83
    5.2.1 基本规则 83
    5.2.2 创建表的语法图 83
    5.3 基本关系表 85
    5.3.1 最简单的表创建语法 85
    5.3.2 利用查询创建表 86
    5.3.3 存储参数 87
    5.3.4 完整性约束 88
    5.4 按索引组织的表 92
    5.5 簇表 93
    5.5.1 创建簇表 93
    5.5.2 创建簇索引 94
    5.5.3 删除簇 94
    5.6 分区表 95
    5.6.1 范围分区表 95
    5.6.2 散列分区表 97
    5.6.3 列表分区表 100
    5.6.4 组合分区表 101
    5.7 外部表 102
    5.8 对象表 105
    5.9 嵌套表 107
    5.10 管理表 108
    5.10.1 存储参数 109
    5.10.2 表结构维护 110
    5.10.3 数据完整性约束维护 112
    5.10.4 表的删除与截断 114
    本章小结 114
    综合应用与习题五 115
    第6章 索引与视图 117
    6.1 管理索引 117
    6.1.1 索引概述 117
    6.1.2 创建唯一索引 120
    6.1.3 创建位图索引 120
    6.1.4 创建基于函数的索引 121
    6.1.5 设置与约束相关的索引 122
    6.1.6 创建簇索引 123
    6.1.7 对索引创建分区 123
    6.1.8 索引的删除与重建 125
    6.1.9 索引的维护 125
    6.1.10 索引使用的标识 127
    6.2 视图的创建与使用 127
    6.2.1 创建与删除视图 127
    6.2.2 对视图执行DML操作的限制 129
    6.2.3 内嵌视图 130
    本章小结 131
    综合应用与习题六 131
    第7章 其他常用方案对象 132
    7.1 序列 132
    7.1.1 序列创建与删除语法 132
    7.1.2 序列的使用 133
    7.2 数据库链接 135
    7.3 实体化视图日志 136
    7.4 实体化视图 137
    本章小结 140
    综合应用与习题七 140
    第8章 Oracle支持的SQL 142
    8.1 Oracle的数据操纵语言 142
    8.1.1 INSERT语句 142
    8.1.2 UPDATE语句 144
    8.1.3 DELETE语句 146
    8.1.4 MERGE语句 147
    8.1.5 事务控制命令 148
    8.2 Oracle支持的查询 149
    8.2.1 SELECT语句 149
    8.2.2 虚表与伪列 152
    8.2.3 表的连接 152
    8.2.4 子查询 154
    8.2.5 集合运算 158
    8.2.6 层次树型查询 162
    8.2.7 With子句 163
    8.3 Oracle支持的SQL函数 164
    8.3.1 单行函数 164
    8.3.2 分组函数 168
    8.3.3 DateTime函数 169
    8.3.4 OLAP函数 172
    8.4 用于数据分析的SQL 173
    8.4.1 多表插入与旋转插入 173
    8.4.2 Top-n查询 175
    8.4.3 ROLLUP与CUBE 176
    本章小结 180
    综合应用与习题八 180
    第9章 PL/SQL 183
    9.1 PL/SQL基础 183
    9.1.1 PL/SQL程序块的结构 183
    9.1.2 PL/SQL基本语法规则 184
    9.1.3 复合数据类型 189
    9.1.4 PL/SQL程序的用途 193
    9.2 PL/SQL中的SELECT语句 193
    9.3 流程控制语句 196
    9.3.1 分支语句 196
    9.3.2 循环控制语句 197
    9.3.3 跳转控制语句 198
    9.4 游标 199
    9.4.1 游标的概念 199
    9.4.2 游标的定义和使用 199
    9.4.3 游标的属性 201
    9.4.4 用于游标的FOR循环 202
    9.4.5 用于游标的SELECT和
    UPDATE语句 202
    9.5 例外 203
    9.5.1 例外的分类与捕获 203
    9.5.2 Oracle预定义例外 204
    9.5.3 处理非预定义例外 206
    9.5.4 用户自定义例外 207
    9.5.5 RAISE_APPLICATION_ERROR
    过程 208
    9.6 存储过程和函数 209
    9.6.1 存储过程/函数的作用 209
    9.6.2 存储过程 209
    9.6.3 函数 211
    9.6.4 参数的传递形式 213
    9.6.5 局部子程序 213
    9.6.6 子程序嵌套调用时的例外处理 214
    9.6.7 子程序的管理 214
    9.7 包 216
    9.7.1 包概述 216
    9.7.2 包的创建与删除 217
    9.7.3 包内元素的引用 219
    9.7.4 无体包 219
    9.7.5 重载 220
    9.7.6 向前引用声明 221
    9.7.7 一次(One-Time-only)过程 222
    9.7.8 常用内置程序包 222
    9.8 数据库触发器 227
    9.8.1 数据库触发器概述 227
    9.8.2 触发器设计指南 228
    9.8.3 DML触发器 228
    9.8.4 DDL触发器 232
    9.8.5 系统事件触发器 233
    9.8.6 对触发器主体过程的调用 234
    9.8.7 防止从变异(Mutating)的表中
    读取数据 235
    9.8.8 触发器的运用场合 236
    9.8.9 管理数据库触发器 240
    9.9 大对象类型(LOB) 241
    9.9.1 大对象类型基础 241
    9.9.2 DBMS_LOB程序包 242
    9.9.3 BFILE列的使用 245
    9.9.4 从LONG向LOB迁移数据 246
    9.9.5 临时LOB对象 246
    9.10 数据对象参照依赖与子程序重新编译 247
    9.11 虚拟专用数据库 249
    9.11.1 虚拟专用数据库的引入 249
    9.11.2 创建应用上下文环境 249
    9.11.3 创建安全策略函数 251
    9.11.4 应用安全策略 253
    9.11.5 安全策略的运行模式与管理 255
    本章小结 256
    综合应用与习题九 257
    第10章 数据管理 260
    10.1 SQL*Loader 260
    10.1.1 基本概念 260
    10.1.2 SQL*Loader的语法及参数 261
    10.1.3 控制文件 263
    10.2 传统数据导入/导出工具 265
    10.2.1 EXP 265
    10.2.2 IMP 267
    10.3 数据泵 269
    10.3.1 EXPDP 269
    10.3.2 IMPDP 271
    10.4 闪回技术 273
    本章小结 278
    综合应用与习题十 278
    第11章 数据库管理 279
    11.1 初始化参数和系统性能调整 279
    11.1.1 初始化参数概述 279
    11.1.2 初始化参数文件 280
    11.1.3 影响Oracle数据库系统
    性能的参数 282
    11.2 启动与停止数据库 283
    11.2.1 数据库的启动过程 283
    11.2.2 使用SQL*Plus启动数据库 284
    11.2.3 关闭Oracle数据库 284
    11.2.4 改变数据库的可用性 286
    11.3 控制文件管理 287
    11.3.1 什么是控制文件 287
    11.3.2 控制文件的内容 288
    11.3.3 在SPFILE中使用多个控制文件 288
    11.3.4 在PFILE中使用多个控制文件 288
    11.3.5 获取控制文件的相关信息 288
    11.4 重做日志管理 289
    11.4.1 数据库运行模式 289
    11.4.2 重做日志的写入 290
    11.4.3 日志归档与维护联机重做日志 291
    11.4.4 获取联机重做日志的相关信息 293
    本章小结 293
    综合应用与习题十一 293
    附录 Oracle 10g的安装与卸载 295
    参考文献 308
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册