`

oracle----面向对象数据表-----嵌套表和可变数组(了解)

阅读更多
嵌套表(了解 oracle独有的技术,开发中不使用)
在一个表中还包含了另一个子表
例如: 一个部门可能承接多个项目

平时都是建立两张表,一张是部门 一张是项目,
而oracle可以允许在部门表中放一张项目表
----这样其实是面向对象的做法,也就是允许自定义类型,我们把一张表变成一个类型呗
原始的写法:
CREATE TABLE project(
   proid NUMBER(4) PRIMARY KEY NOT NULL,
   proname VARCHAR2(50) ,
   prodate DATE,
   deptno NUMBER(2),
   CONSTRAINT department_project_deptno_fk FOREIGNE KEY(deptno) deptno REFERENC KEY(department.deptno) ON DELETE CASCADE
);
下面面向对象的写法:
CREATE TYPE project_ty AS OBJECT(  //相当于定义了字符串类型一样,但是这个类型没有给名称,比如varchar 和varchar2都是string的名称一样
   proid NUMBER(4) ,  //不能有主键,不能写not null,只能定义值
   proname VARCHAR2(50) ,
   prodate DATE
);
/
CREATE TYPE project_nt AS TABLE OF project_ty    //nt 表示嵌套,这是给project_ty类型定义了个名称
/

CREATE TABLE department(
   deptno NUMBER(2) PRIMARY KEY NOT NULL,
   dname VARCHAR2(50) NOT NULL,
   projects project_nt 
)NESTED TABLE projects STORE AS project_nt_tab _temp;  //嵌套表的内容给存到这个地方

INSERT INTO department(deptno,dname,projects)
VALUES(1,'技术部',
     project_nt(
         project_ty(1001,'ERP',SYSDATE),
         project_ty(1001,'OA',SYSDATE),
         project_ty(1001,'CRM',SYSDATE),      
     )
)
可变数组(了解---oracle特性,嵌套表的升级版)
实际上就是将内部的嵌套表的内容的长度进行了限制

CREATE TYPE project_list AS VARRAY(10) OF project_nt
分享到:
评论

相关推荐

    oracle database 10g 完整参考手册part1

    第34章 收集器(嵌套表和可变数组) 第35章 使用大对象 第36章 面向对象的高级概念 第Ⅶ部分 Oracle中的Java 第37章 Java简介 第38章 JDBC程序设计 第39章 Java存储过程 第40章 Oracle真正应用群集 第41章 网格体系...

    oracle database 11g 完整参考手册中文高清完整版part3

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

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

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

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    二进制数据类型 row 1~2000字节 可变长二进制数据,在具体定义字段的时候必须指明最大长度n long raw 1~2GB 可变长二进制数据 LOB数据类型 clob 1~4GB 只能存储字符数据 nclob 1~4GB 保存本地语言字符集数据 blob...

    Oracle_Database_11g完全参考手册.part3/3

    第39章 收集器(嵌套表和可变数组) 第40章 使用大对象 第41章 面向对象的高级概念 第42章 JAVA简介 第43章 JDBC程序设计 第44章 JAVA存储过程 第Ⅶ部分 指南 第45章 Oracle数据字典指南 第46章 应用程序和SQL调整...

    Oracle_Database_11g完全参考手册.part2/3

    第39章 收集器(嵌套表和可变数组) 第40章 使用大对象 第41章 面向对象的高级概念 第42章 JAVA简介 第43章 JDBC程序设计 第44章 JAVA存储过程 第Ⅶ部分 指南 第45章 Oracle数据字典指南 第46章 应用程序和SQL调整...

    oracle database 11g完全参考手册 高清完整版part1 共3部分

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

    疯狂JAVA讲义

    2.1.3 面向对象程序设计简介 27 2.1.4 面向对象的基本特征 28 2.2 UML(统一建模语言)介绍 29 2.2.1 用例图 30 2.2.2 类图 31 2.2.3 组件图 33 2.2.4 部署图 33 2.2.5 顺序图 34 2.2.6 活动图 34 2.2.7 ...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例159 创建长度可变的数组 206 实例160 利用反射重写toString()方法 208 实例161 反射与动态代理 209 7.3 常见的未检查型异常 210 实例162 算数异常 210 实例163 数组存值异常 211 实例164 数组下标越界异常 212 ...

    JAVA面试题最全集

    掌握类和对象的概念,掌握面向对象编程的本质 49.静态变量和静态方法的意义,如何引用一个类的静态变量或者静态方法? 50.JAVA语言如何进行异常处理,关键字:thorws,throw,try,catch,finally 51.Object类(或者其...

    超级有影响力霸气的Java面试题大全文档

    面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性:  多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化...

    JAVA上百实例源码以及开源项目源代码

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用PHP进行Web开发的各个方面的知识和技巧,主要包括开发环境、PHP基础、Web页面交互、文件操作、会话应用、图形图像处理及面向对象等内容。...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用PHP进行Web开发的各个方面的知识和技巧,主要包括开发环境、PHP基础、Web页面交互、文件操作、会话应用、图形图像处理及面向对象等内容。...

    Java面试宝典-经典

    22、面向对象的特征有哪些方面 15 23、java中实现多态的机制是什么? 17 24、abstract class和interface有什么区别? 17 25、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized? 18 ...

    java 面试题 总结

    封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多...

Global site tag (gtag.js) - Google Analytics