Oracle8i/9i
数据库基础
(初稿)
赵元杰
2003 年 01 月 4 日
前 言
本讲稿(ORACLE8i 数据库基础)是作者在多年的工作和授课中的总结,主要包括两个部分,
第一部分是 ORACLE SQL*PLUS 基础,主要讲述 ORACLE 应用系统设计的基本知识和给出
一 些 有 用 的 实 例 ; 第 二 部 分 是 介 绍 ORACLE PL/SQL 知 识 , 主 要 讲 述 ORACLE 数 据
库 PL/SQL 程序设计所用到基本知识,这部分给出进行应用设计所必需的基础知识。这两部
分的内容都尽可能做到内容简洁而全面。特点是,1.用简单明了的语句对解释各个部分的内
容,省去一些理论性的解释;2.给出作者在应用设计和开发中的一些具体的例子,为软件人
员提供一些借鉴,省去查阅大量资料的时间。3.给出了许多资料所没有提供的一些使用技巧,
如导出触发器等。总之,内容基本上包括当前 Oracle8I 的最新内容。同时也覆盖了最新的
ORACLE8i OCP 培训大纲的内容。不仅包含 ORACLE 程序设计人员、DBA 所必须掌握的知
识,而且还含盖了系统分析员所要求的内容。与本书(讲稿)相伴的还有《 Oracle8i/9i 初级
数据库管理》和《Oracle8i/9i 高级数据库管理》。
全书内容简练实用,可作为 ORACLE 数据库管理人员参考,也可作为应用开发人员和系
统分析与 设计 人员 以及 大学 计算 机专 业教 学的 参考 资料 。由 于作 者水 平所 限, 加之
ORACLE 的产品与内容的浩瀚,在资料的整理与收集中可能有不少错误和不妥之处,希望
读者给予批评制正。
2
目 录
第一部分 Oracle SQL*PLUS 基础...................................................................................................23
第一章 Oracle 数据库基础................................................................................................................23
§1.1 理解关系数据库系统(RDBMS)..................................................................................23
§1.1.1 关系模型..................................................................................................................23
§1.1.2 Codd 十二法则........................................................................................................24
§1.2 关系数据库系统(RDBMS)的组成..............................................................................24
§1.2.1 RDBMS 内核...........................................................................................................25
§1.2.2 数据字典概念..........................................................................................................25
§1.3 SQL、SQL*Plus 及 PL/SQL.............................................................................................25
§1.3.1 SQL 和 SQL*PLUS 的差别....................................................................................25
§1.3.2 PL/SQL 语言...........................................................................................................27
§1.4 登录到 SQL*PLUS............................................................................................................28
§1.4.1 UNIX 环境...............................................................................................................28
§1.4.2 Windows NT 和 WINDOWS/2000 环境................................................................30
§1.5 常用 SQL*PLUS 附加命令简介.......................................................................................32
§1.5.1 登录到 SQL*PLUS.................................................................................................33
§1.5.2 EXIT 和 QUIT.........................................................................................................33
§1.5.3 DESCRIBE(显示表、视图结构)...........................................................................34
§1.5.4 LIST(列出)命令......................................................................................................34
§1.5.5 Change(替换字符串)命令......................................................................................35
§1.5.6 Append(追加字符串)命令.................................................................................35
§1.5.7 Save 保存当前缓冲区命令到文件.........................................................................36
§1.5.8 GET 将命令文件读到缓冲区.................................................................................36
§1.5.9 SPOOL 将信息记录到文件中................................................................................37
§1.5.10 再运行当前缓冲区的命令...................................................................................37
§1.6 常用数据字典简介.............................................................................................................38
§1.7 ORACLE 数据类型............................................................................................................40
§1.8 SQL 语句基础....................................................................................................................46
§1.8.1 SQL 语句所用符号.................................................................................................46
§1.8.2 简单 select 查询.......................................................................................................47
§1.9 伪列及伪表.........................................................................................................................48
§1.10 使用 SQL Worksheet 工作...............................................................................................48
第二章 查询基础................................................................................................................................52
§2.1 SELECT 语句.....................................................................................................................52
§2.2 SQL 中的单记录函数........................................................................................................52
§2.2.1 单记录字符函数.....................................................................................................53
§2.2.2 单记录数字函数.....................................................................................................58
§2.2.3 单记录日期函数.....................................................................................................64
§2.2.4 单记录转换函数.....................................................................................................67
§2.2.5 其它的单记录函数.................................................................................................71
§2.3 SQL 中的组函数................................................................................................................76
3
§2.3.1 多记录组函数..........................................................................................................76
§2.3.2 带 GROUP BY 的计算...........................................................................................78
§2.3.3 用 HAVING 来限制分组的计算............................................................................78
§2.4 控制和格式化输出.............................................................................................................79
§2.4.1 用 ORDER BY 子句来对结果进行排序...............................................................79
§2.4.2 用 BREAK 命令 来对结果进行排列....................................................................79
§2.4.3 用 COMPUTE 命令对结果进行格式化................................................................82
§2.5 配置会话环境.....................................................................................................................85
§2.5.1 ARRAYSIZE(取回的行数)...............................................................................86
§2.5.2 AUTOCOMMIT(自动提交)...................................................................................86
§2.5.3 LINESIZE(行显示宽度).........................................................................................86
§2.5.4 LONG(长类型显示字节数)....................................................................................86
§2.5.5 PAGESIZE(页行数)................................................................................................87
§2.5.6 PAUSE(暂停)...........................................................................................................87
§2.5.7 SPACE(列间空格)...................................................................................................87
§2.5.8 Termout (启/停屏幕显示).......................................................................................87
§2.5.9 ECHO (启/停命令显示)..........................................................................................88
§2.5.10 TRANSACTION (启动事务)...............................................................................88
§2.5.11 SHOW ALL(列出所有参数).................................................................................88
§2.6 格式化输出.........................................................................................................................90
§2.6.1 一般数据的格式化输出.........................................................................................90
§2.6.2 日期的格式化输出.................................................................................................92
§2.7 加标题.................................................................................................................................93
§2.8 建立简单报告.....................................................................................................................93
§2.9 输入变量.............................................................................................................................95
第三章 表及索引的定义操作...........................................................................................................98
§3.1 建立表结构.........................................................................................................................98
§3.1.1 建立表结构命令.....................................................................................................98
§3.1.2 建立表结构例子...................................................................................................100
§3.1.3 建立临时表结构...................................................................................................101
§3.3 修改表结构.......................................................................................................................102
§3.3.1 修改表结构命令...................................................................................................103
§3.3.2 修改表结构例子...................................................................................................103
§3.3.3 删除表结构............................................................................................................105
§3.3.4 使用 CHECK 作限制约束....................................................................................106
§3.3.5 使用 UNRECOVERABLE 创建表.......................................................................106
§3.3.6 将表移动到新的数据段或新的表空间...............................................................107
§3.3.7 手工分配表的存储空间.......................................................................................108
§3.3.8 标记不使用的列和删除不使用的列...................................................................109
§3.3 主键...................................................................................................................................111
§3.3.1 创建主键................................................................................................................111
§3.3.2 改变主键................................................................................................................113
§3.3.3 删除主键................................................................................................................114
§3.4 外部键...............................................................................................................................114
4
§3.4.1 建立外部键............................................................................................................115
§3.4.2 修改外部键............................................................................................................117
§3.4.3 删除外部键............................................................................................................117
§3.5 索引...................................................................................................................................117
§3.5.1 建立索引................................................................................................................117
§3.5.2 修改索引................................................................................................................119
§3.5.3 删除索引................................................................................................................120
§3.6 新索引类型.......................................................................................................................120
§3.6.1 基于函数的索引...................................................................................................120
§3.6.2 反向键索引............................................................................................................122
§3.6.3 索引组织表............................................................................................................122
§3.7 抽象数据类型的使用......................................................................................................124
§3.8 大数据类型的使用...........................................................................................................125
§3.8.1 可用数据类型.......................................................................................................125
§3.8.2 为 LOB 数据类型指定存储..................................................................................125
§3.8.3 操作和检索 LOB 数据..........................................................................................127
§3.9 表和索引有关的数据字典..............................................................................................130
§3.9.1 表和索引数据字典...............................................................................................130
§3.9.2 数据字典查询例子...............................................................................................130
第四章 视图、同义词和序列.........................................................................................................134
§4.1 视图...................................................................................................................................134
§4.1.1 使用视图来修改表中数据...................................................................................134
§4.1.2 创建一个新视图...................................................................................................134
§4.1.3 删除一个视图.......................................................................................................136
§4.1.4 改变视图................................................................................................................137
§4.2 实体视图(MATERIALIZED VIEW)...............................................................................137
§4.2.1 创建实体视图.......................................................................................................137
§4.2.2 创建实体视图日志...............................................................................................144
§4.2.3 修改实体视图.......................................................................................................145
§4.2.4 修改实体视图日志...............................................................................................148
§4.2.5 实体视图完整例子...............................................................................................148
§4.3 序号(sequence).................................................................................................................152
§4.3.1 建立序号................................................................................................................152
§4.3.2 修改序号................................................................................................................153
§4.3.3 使用序号................................................................................................................154
§4.3.4 删除序号................................................................................................................154
§4.4 同义词...............................................................................................................................154
§4.4.1 建立同义词............................................................................................................155
§4.4.2 删除同义词............................................................................................................156
§4.5 视图、同义词和序列有关的数据字典..........................................................................156
第五章 簇与分区..............................................................................................................................157
§5.1 簇( cluster ).......................................................................................................................157
§5.1.0 簇概念....................................................................................................................157
§5.1.1 建立簇....................................................................................................................159
5
评论0