介绍一下嵌套表
编辑: 面试啦 发布时间: 2023-09-28 15:52:24
嵌套表是表中之表。一个嵌套表是某些行的集合,它在主表中表示为其中的一列。对主表中的每一条记录,嵌套表可以包含多个行。
例:假设有一个关于动物饲养员的表,希望其中具有他们饲养的动物的信息。用一个嵌套表,就可以在同一个表中存储饲养员和其饲养的全部动物的信息。
步骤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(‘mary’,animals_nt(animal_ty(‘dog’,'butch’,’970304′),animal_ty(‘dog’,'rover’,’970405′),animal_ty(‘dog’,'julio’,’970506′)));
insert into breeder
values(‘jane’,animals_nt(animal_ty(‘cat’,'an’,’970304′),
animal_ty(‘cat’,'jame’,’970405′),
animal_ty(‘cat’,'killer’,’970808′)));
步骤5:查询嵌套表
select name,birthdate from
table(select animals from breeder);
select name,birthdate from
table(select animals from breeder where breedername=’mary’)
where name=’dog’;
例:假设有一个关于动物饲养员的表,希望其中具有他们饲养的动物的信息。用一个嵌套表,就可以在同一个表中存储饲养员和其饲养的全部动物的信息。
步骤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(‘mary’,animals_nt(animal_ty(‘dog’,'butch’,’970304′),animal_ty(‘dog’,'rover’,’970405′),animal_ty(‘dog’,'julio’,’970506′)));
insert into breeder
values(‘jane’,animals_nt(animal_ty(‘cat’,'an’,’970304′),
animal_ty(‘cat’,'jame’,’970405′),
animal_ty(‘cat’,'killer’,’970808′)));
步骤5:查询嵌套表
select name,birthdate from
table(select animals from breeder);
select name,birthdate from
table(select animals from breeder where breedername=’mary’)
where name=’dog’;
词条:oracle面试题
面试题库导航
- C++面试题
- JAVA面试题
- Oracle面试题
- MySQL面试题
- Linux面试题
- 网络工程师面试题
- 网管面试题
- 软件工程师面试题
- PHP面试题
- .net面试题
- 软件测试面试题
- EJB面试题
- Spring面试题
- Javascript面试题
- Python面试题
- QTP面试题
- Servlet面试题
- J2EE面试题
- Database面试题
- ASP面试题
- Unix面试题
- Loadrunner面试题
- 通信面试题
- 嵌入式面试题
- Ruby面试题
- Delphi面试题
- Mobile开发面试题
- SOA面试题
- JAVA面试题面试题
- 研发工程师面试题
- 软件架构师面试题
- 系统工程师面试题
- Android面试题
- JAVA程序员
- C#面试题