Oracle从零开始19――表的管理09――嵌套表和可变数组

11.嵌套表(了解)

注意:基本不用。

例如:一个部门可能承接多个项目,那么按原始方法设计,应该这样定义两张表:

CREATE TABLE department

(

    deptno        NUMBER(2)    PRIMARY KEY,

    dname        VARCHAR2(50)    NOT NULL,

);

CREATE TABLE project

(

    proid        NUMBER(4)    PRIMARY KEY,

    porname        VARCHAR2(50)    NOT NULL,

    pordate        DATE        NOT NULL,

    deptno        NUMBER(2),

    CONSTRAINT department_project_deptno FOREIGN KEY(deptno) ON DELETE CASCADE

);

    这是最通用的、最正确的操作,但是Oracle中引入了嵌套表的概念,可以直接将项目表的类型作为一个部门表的字段类型,达到嵌套的功能。

    但完成嵌套表的制作要首先指定嵌套表的类型。因为数据库在创建数据表的时候都要制定字段的类型。

类型创建成功之后,并不意味着可以直接使用,因为此类型是一个完整的类型,所以要为它指定一个名称。下面的语句是给project_ty类型指定了名称:project_nt

    以上的操作表示以后直接使用project_nt表示project_ty类型,就类似于varchar2表示字符串是一样的。下面可以使用此类型创建部门表。

    插入数据时需要指定每一个project_ty类型

    此时查询嵌套表,可以返回多个项目

    如果要查一个部门的全部项目,就要查嵌套表

范例:更新项目编号为1001的项目名称,将此项目名称更新为"测试项目"

12.可变数组(了解)

就是升级版的嵌套表。可变数组实际上就是将内部的嵌套表的内容的长度进行了限制。

    例如:一个部门有多个工人,如果按照可变数组的做饭,首先要定义一个工人的类型。

    下面再定义数组类型

    定义部门表:一个部门中可能存在多个工人

    插入测试数据:

 
 
 
 

你可能感兴趣的:(oracle,表,从零开始,19)