`
hekui1016
  • 浏览: 51114 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ORACLE概念之嵌套表

 
阅读更多

转自http://blog.csdn.net/simonezhlx/article/details/3167343

不知最初原创作者是谁,甚是遗憾。

感谢原创者和转载者,让更多的人学到有用的知识。

 

一、嵌套表的定义:

  嵌套表是表中之表。一个嵌套表是某些行的集合,它在主表中表示为其中的一列。对主表中的每一条记录,嵌套表可以包含多个行。在某种意义上,它是在一个表中存储一对多关系的一种方法。考查一个包含部门信息的表,在任何时间内每个部门会有很多项目正在实施。在一个严格的关系模型中,将需要建立两个独立的表department和project。

  嵌套表允许在department表中存放关于项目的信息。勿需执行联合操作,就可以通过department表直接访问项目表中的记录。这种不经联合而直接选择数据的能力使得用户对数据访问更加容易。甚至在并没有定义方法来访问嵌套表的情况下,也能够很清楚地把部门和项目中的数据联系在一起。在严格的关系模型中,department和project两个表的联系需要通过外部关键字(外键)关系才能实现。


二、举例说明嵌套表的使用:

  假设有一个关于动物饲养员的表,希望其中具有他们饲养的动物的信息。用一个嵌套表,就可以在同一个表中存储饲养员和其饲养的全部动物的信息。

1、创建类型animal_ty:此类型中,对于每个动物都包含有一个记录,记载了其品种、名称和出生日期信息。

CREATE TYPE animal_ty AS OBJECT (
breed varchar2(25), 
name varchar2(25), 
birthdate date); 

2、创建animals_nt:此类型将用作一个嵌套表的基础类型。

CREATE TYPE animals_nt as table of animal_ty;

3、创建表breeder:饲养员的信息表

create table breeder
(breedername varchar2(25),
animals animals_nt)
nested table animals store as animals_nt_tab;

4、向嵌套表中插入记录

insert into breeder 
values('03y',animals_nt(animal_ty('dog','butch','31-03-97'),
animal_ty('dog','rover','31-03-97'),
animal_ty('dog','julio','31-03-97')));

insert into breeder 
values('jane',animals_nt(animal_ty('cat','an','31-03-97'),
animal_ty('cat','jame','31-03-97'),
animal_ty('cat','killer','31-03-97')));

commit;

5、查询嵌套表

select name,birthdate from 
table(select animals from breeder);

select name,birthdate from 
table(select animals from breeder 
where breedername='03y');

select breedername,name,birthdate from
breeder a,table(a.animals) b

三、嵌套表的特点:

1、对象复用:如果编写面向对象的代码,就提高了重用以前编写的代码模块的机会。同样,如果创建面向对象的数据库对象,也就提高了数据库对象能够被重用的机会。

2、标准支持:如果创建标准的对象,那么它们被重用的机会就会提高。如果有多个应用或多个表使用同一数据库对象集合,那么它就是既成事实的数据库对象标准。

3、定义访问路径:对于每一个对象,用户可定义在其上运行的过程和函数,从而可以使数据和访问此数据的方法联合起来。有了用这种方式定义的访问路径,就可以标准化数据访问的方法并提高对象的可复用性。

分享到:
评论

相关推荐

    MLDN魔乐科技_Oracle课堂24_嵌套表、可变数组

    在Oracle数据库系统中,嵌套表和可变数组是两种重要的高级数据类型,它们提供了处理复杂数据结构的能力,尤其在存储和操作集合类数据时显得非常有用。在本Oracle课堂中,我们将深入探讨这两个概念以及它们在实际应用...

    SQL集合嵌套表varray

    MongoDB的文档可以包含其他文档和数组,这与SQL的集合嵌套表和VARRAY有相似之处。通过比较和学习这两种不同的数据库模型,可以加深对复杂数据存储和查询的理解。 总结来说,SQL的集合嵌套表和VARRAY是处理多值数据...

    ORACLE表连接方式

    在Oracle数据库中,表连接是查询多个表时非常重要的一个概念。通过不同的连接方式,可以实现数据的有效关联和检索。本文将对Oracle中的几种主要表连接方式进行详细介绍:内连接(Inner Join)、自然连接(Natural ...

    Oracle优化常用概念.pptx

    Oracle 优化常用概念 Oracle 优化器是 Oracle 数据库管理系统中一个核心组件,负责根据用户提交的 SQL 语句生成最优的执行计划,以提高查询效率。以下是 Oracle 优化器中的一些常用概念: CBO/RBO Oracle 优化...

    ORACLE表连接方式分析及常见用法

    首先,我们了解表连接的基本概念,它通过FROM子句中的多个表和WHERE子句中的连接条件来组合数据。Oracle提供了多种连接类型,包括嵌套循环连接、群集连接、排序合并连接、笛卡尔连接、哈希连接和索引连接。 1. 嵌套...

    精通Oracle10编程.pdf

    通过以上几个方面的介绍,我们可以看到“精通Oracle10编程.pdf”这一资料中涉及的知识点主要包括:Oracle 10g的基础介绍、嵌套表类型的应用、引用变量的声明、游标的使用以及变量命名规则等方面。这些内容对于深入...

    oracle 脚本

    在你提到的"oracle 脚本"主题中,我们可以深入探讨Oracle数据库中的PL/SQL编程、分区表、嵌套表以及触发器等相关知识点。 1. **PL/SQL基本结构**: PL/SQL是Oracle数据库的内置过程式语言,结合了SQL的查询能力与...

    Oracle PLSQL集合

    Oracle支持三种主要的集合类型:关联数组、嵌套表和VARRAY。 - 可以在程序的声明部分使用`TYPE`关键字定义特定的集合类型,然后创建该类型的变量实例。 **集合或集合实例** - “集合”可以指代PL/SQL变量,如关联...

    oracle进阶(多表)

    #### 一、Oracle多表查询基础概念 在Oracle数据库中,多表查询是非常重要的一个部分,它可以帮助我们从多个表中提取所需的数据。对于初学者来说,掌握多表查询的基础非常重要。 - **基本语法**: ```sql SELECT ...

    Oracle知识之集合和成员函数.pptx

    虽然它们与嵌套表有许多相似之处,比如结构和元素访问方式,但在存储和管理方面有所不同。 总的来说,Oracle中的集合和成员函数是处理大量数据的强大工具,它们能够有效地组织和操作数据,提高代码的效率和可维护性...

    Oracle数据库管理员指南-管理表-中文版.pdf Administrator's Guide Oracle Managing Tables

    对于特定的列类型,如LOB、varray和嵌套表,它们存储在自己的段中,并且可以为这些段指定STORAGE子句以覆盖表级别指定的存储参数。 管理员还应考虑表的其他高级管理特性,如表分区和索引组织表。分区表可以将数据...

    Oracle经典教程1——走进Oracle

    在Oracle中创建表时,可以为表定义各种约束以确保数据完整性。常见的约束包括: 1. **主键约束**:用于唯一标识表中的每一行。 2. **外键约束**:用于定义表与表之间的关系。 3. **唯一性约束**:确保列中的值不...

    oracle执行计划详解

    2. Recursive SQL 概念:有时为了执行用户发出的一个 SQL 语句,Oracle 必须执行一些额外的语句,我们将这些额外的语句称之为 ''recursive calls'' 或 ''recursive SQL statements''。这些语句是 Oracle 内部执行的...

    oracle database 11g 高清完整中文版part2

     第39章 收集器(嵌套表和可变数组)  第40章 使用大对象  第41章 面向对象的高级概念 第ⅵ部分 oracle 中的java  第42章 java 简介  第43章 jdbc 程序设计  第44章 java 存储过程 第ⅶ部分 指 南  第45章 ...

    oracle数据库编程pdf文档教案

    Java_oracle01.pdf可能涵盖了SQL的基本概念,如SELECT语句用于数据查询,INSERT用于插入新记录,UPDATE用于更新现有记录,以及DELETE用于删除记录。此外,可能会讲解到表的创建、修改和删除(CREATE, ALTER, DROP)...

    Oracle数据库的基本概念.pptx

    这使得Oracle能够处理复杂的数据类型和结构,如嵌套数据类型、对象类型和对象关系特性。 **3.2 Oracle 管理工具简介** Oracle提供了一系列工具来简化数据库的安装、配置、升级和管理,如通用安装器、数据库配置助手...

    oracle 8.0.5.0.0

    2. **对象-关系模型**:此版本进一步融合了对象-关系数据库模型,扩展了SQL语言,引入了如对象类型、嵌套表、继承等特性,使得数据库能够更好地支持面向对象编程和复杂数据结构。 3. **并行查询优化**:Oracle 8.0....

Global site tag (gtag.js) - Google Analytics