2022年嵌套表和对象 .pdf
《2022年嵌套表和对象 .pdf》由会员分享,可在线阅读,更多相关《2022年嵌套表和对象 .pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌套表嵌套表是表中之表。一个嵌套表是某些行的集合,它在主表中表示为其中的一列。对主表中的每一条记录,嵌套表可以包含多个行。在某种意义上,它是在一个表中存储一对多关系的一种方法。考查一个包含部门信息的表,在任何时间内每个部门会有很多项目正在实施。在一个严格的关系模型中,将需要建立两个独立的表department和 project。嵌套表允许在department表中存放关于项目的信息。勿需执行联合操作,就可以通过department表直接访问项目表中的记录。这种不经联合而直接选择数据的能力使得用户对数据访问更加容易。甚至在并没有定义方法来访问嵌套表的情况下,也能够很清楚地把部门和项目中的数据联系
2、在一起。在严格的关系模型中,department和 project 两个表的联系需要通过外部关键字(外键)关系才能实现。二、举例说明嵌套表的使用:假设有一个关于动物饲养员的表,希望其中具有他们饲养的动物的信息。用一个嵌套表,就可以在同一个表中存储饲养员和其饲养的全部动物的信息。1、创建类型animal_ty:此类型中,对于每个动物都包含有一个记录,记载了其品种、名称和出生日期信息。CREATE TYPE animal_ty AS OBJECT(breed varchar2(25),name varchar2(25),birthdate date);2、创建 animals_nt:此类型将用作一
3、个嵌套表的基础类型。CREATE TYPE animals_nt as table of animal_ty;3、创建表 breeder:饲养员的信息表create table breeder 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 11 页 -(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-
4、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
5、table(select animals from breeder where breedername=03y);select breedername,name,birthdate from breeder a,table(a.animals)b 三、嵌套表的特点:1、对象复用:如果编写面向对象的代码,就提高了重用以前编写的代码模块的机会。同样,如果创建面向对象的数据库对象,也就提高了数据库对象能够被重用的机会。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 11 页 -2、标准支持:如果创建标准的对象,那么它们被重用的机会就会提高。如果有多个应用或多个表使用同一数据库对象集合,
6、那么它就是既成事实的数据库对象标准。3、定义访问路径:对于每一个对象,用户可定义在其上运行的过程和函数,从而可以使数据和访问此数据的方法联合起来。有了用这种方式定义的访问路径,就可以标准化数据访问的方法并提高对象的可复用性。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 11 页 -对象表在 Oracle中把对象作为一种数据类型object,不但可以包含基本的数据类型、集合,还可以为其定义 函数 和过程 作为其方法。创建格式如下:createorreplacetypeperson asobject(NAME varchar2(10),SEX char(2),BIRTHDATE d
7、ate,PLACE varchar2(100);注意:不能在数据类型中定义以下类型:1.LONG、LONG RAW2.ROWID3.PL/SQL特定类型(BINARY_INTEGER、BOOLEAN、%TYPE、%ROWTYPE)4.程序包中自定义的数据类型构造函数使用之前创建的对象建立构造函数:declareperson_one person;beginperson_one:=person(张三,男,date2008-10-11,杭州);dbms_output.put_line(person_one.name);end;名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 11 页
8、-说明:先创建了一个person类型的局部变量,再为该变量创建了一个实例。在实例化中用到的 person是系统的构造函数,可以对 person类型变量进行赋值,该构造函数在对象创建时由系统自动创建,与对象的名称相同。注:创建对象实例时必须提供全部参数,否则报错。引用对象类型可以创建实例化的对象之后,将该对象插入到堆表中。1、例如创建含有person类型数据的表:createtablet_person(person_col person,emp_id number,dep_id number);2、直接插入数据:insertintot_person values(person(张三,男,date
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年嵌套表和对象 2022 嵌套 对象
限制150内