`
glutinit
  • 浏览: 46024 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Oracle学习笔记----对象关系型数据库基础-01

阅读更多
【题外话】我不是很喜欢好几天都看一本书,而更习惯于tick-by-tick式的轮巡方式来慢慢的读好几本书的方式,所以,这两天又开始读Oracle的书啦(当然,代码大全和MySQL的学习笔记还是会继续的),哈哈;Oracle之前的项目虽然有接触,但都被Hibernate堵在后面了,没怎么深入了解过,所以还是希望认识它多一点...

[本文参考了《Oracle参考手册》]

传统的数据库大多是关系型数据库(RDBMS),而Oracle8之后引入了面向对象的概念,这种数据库就称之为“对象关系型数据库管理系统”(ORDBMS)

使用过关系型数据库或者使用过数据库中关系型功能的朋友一定会问,为什么要在数据库中使用“对象”这种概念,这是不是会增加数据库的使用或管理难度?
不能这样说,在遵循一定的设计原则的前提下,使用面向对象的概念反而会让你的数据库更加清晰;
具有OOP特性的数据库具有如下几个优点:
1. 对象重用;
       这和使用OOP来写程序的原理一样,增加了可重用数据库对象的机会;
   
2. 坚持标准;
       如果你为数据库对象设定了标准,那么就进一步增加了重用这些数据的机会;

3. 定义访问路径;
      

在对象关系型数据库当中,你可以自己定义一个抽象数据类型,来管理一类数据,当然,这些数据最好在逻辑上或功能上是属于某个概念的,比如,你可以通过如下的语句来定义一个抽象类型,名字为ADDRESS_TY

     create type ADDRESS_TY as object
     (
       Street VARCHAR2(20),
       City   VARCHAR2(20),
       State  Char(2),
       Zip NUMBER
     );


     该命令的含义是创建了一个ADDRESS_TY的抽象数据类型,其中含有四个属性(有其名称和数据类型),然后你就可以利用该数据类型创建别的数据类型了:

    create type PERSON_TY as object
     (
       Name VARCHAR(20),
       Address ADDRESS_TY
     );

     其中第二列便是利用自定义的数据类型作为其数据类型的。

     其实,这和利用OOP编程的思想非常类似,就是将一些复杂的,细节过多的信息利用对象或抽象数据类型封装起来,让你的程序或数据库更加的简介易懂。

     利用SqlDeveloper等工具可以查看到在运行上述两个命令之后,在Types之下,可以看到刚建立的两个抽象数据类型,当然,也可以通过如下这个命令查询:
      1. select * from USER_TYPE_ATTRS
      或者
      2. desc PERSON_TY 或者 desc ADDRESS_TY
    

      那么这些抽象数据类型被定义出来以后,如何使用呢?
      我们来用它们建一张新表:
 
      create table CUSTOMER
      (CUSTOM_ID NUMBER,
       Person PERSON_TY);
     

     
      之后,用desc CUSTOMER来查看其定义,可以发现PERSON的类型就是我们刚才自定义的PERSON_TY。

      
    
分享到:
评论

相关推荐

    Oracle学习笔记-日常应用、深入管理、性能优化

    资源名称:Oracle学习笔记-日常应用、深入管理、性能优化内容简介:Oracle学习笔记-日常应用、深入管理、性能优化Oracle 11g是最具代表性的高端关系型数据库管理系统,它在世界各地的大型商务数据库应用系统中被广泛...

    Oracle 10g 学习笔记

    │ ORACLE学习笔记(二)SQLPLUS基础 - lvhuiqing的专栏 - CSDN博客.mht.lnk │ oracle技巧.txt │ ORACLE的索引和约束详解 - Oracle10g - 沪城篱笆.mht │ oracle里常用命令 - Oracle - 51CTO技术论坛_中国领先的IT...

    Oracle学习笔记——日常应用、深入管理、性能优化 示例代码

    Oracle 11g是最具代表性的高端关系型数据库管理系统,它在世界各地的大型商务数据库应用系统中被广泛应用。本书设计了大量的应用情景,介绍了数据库管理员和开发人员常用的管理、维护和优化Oracle 11g数据库的技术和...

    oracle数据库笔记

    本文是由笔者2012年学习oracle数据库时编写的学习札记,其中的题目 多数为老师留下的思考题目。 我相信本文会对初学者使用oracle有一个初步的使用印象。右图为我所参 考的书籍。 第一讲 Oacle关系数据库 9 一....

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

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    oracle学习笔记

    RDBMS (REL DATABASE MANAGE SYSTEM) 关系型数据库管理系统 SQL(Structured Query LANGUAGE):包括: 数据查询语言---select 数据操作语言(Data Manipulating LANGUAGE DML)--- insert,delete,update 数据定义语言...

    ORACLE学习笔记

    ORACLE 使用关系型数据库 解决了数据冗余问题(数据同步)。(DETAR乘阶)join一个表 , ON一个条件 关联多了,数据就慢. 从入门到精通阶梯: 1.先学语法 2.再学DB 3.几大块 数据库结构 备份恢复 4.ORCAL ...

    ORACLE笔记

    ORACLE学习笔记(入门级) ...SQL(结构化查询语言),是操作关系型数据库中的对象。 DDL(数据定义语言),用于建表或删表操作,以及对表约束进行修改。 DML(数据操作语言),向表中插入纪录,修改纪录。

    MySQL-Notes学习笔记

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并...

    Mysql学习笔记(基础)基础sql语句详细记录

    数据库学习(基础) // 个人网课学习记录,如果有违规等问题,请联系我删除...nosql : 非关系型数据库: key :value mogodb : redits : 关系型数据库:主要是用来描述实体与实体之间的关系 关系型数据库: 主要是用来描

    2009达内SQL学习笔记

    保存在oracle数据库中的所有操作细节: spool oracleday01.txt :开始记录 spool off :开始保存细节 四、SELECT语句:选择操作、投影操作。 select:从一个或多个表中检索一个或多个数据列。包含信息:想选择...

    MySQL基础笔记

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统(RDBMS)之一。 学习视频网址:MySQL学习视频 1.1 为什么学数据库 数据库从大一就开始学...

    asp.net知识库

    VS2005 ASP.NET本地化学习笔记&感受 在自定义Server Control中捆绑JS文件 Step by Step 深度解析Asp.Net2.0中的Callback机制 使用 Web 标准生成 ASP.NET 2.0 Web 站点 ASP.NET 2.0基于SQLSERVER 2005的aspnetdb.mdf...

    B站 MySQL学习随手记 全是满满的干货!

    1. 关系型数据库(SQL) MySQL,Oracle,SQL Server,DB2,SQLlite 通过表和表之间的,行与列之间的关系进行数据的存储。(例如:学生信息表) 2. 非关系型数据库(NoSQL)Not Only SQL Redis,MongDB 对象存储,...

    MYSQL学习笔记

    数据库:就是在服务器中安装一个可以管理数据的软件,这个文件称为“DBMS”; DBMS:数据库管理系统(database management system); 常用的跟网站有关系的DBMS: ...Oracle:甲骨文公司提供一个收费的大型数据库

    整理后java开发全套达内学习笔记(含练习)

    export ORACLE_HOME=/oracledata/.../bin: BufferedReader建构时接受java.io.Reader物件 可使用java.io.InputStreamReader 例: import java.io.InputStreamReader; import java.io.BufferedReader; class n{ ...

    MySQL学习配置整理语法安装使用笔记

    MySQL是一个 关系型 数据库管理系统,由瑞典MySQL AB 公 司开 发,现在已经属于 Oracle 旗下产品。MySQL 是最流行的关系型 数据 库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS ( Relational Database ...

    leetcode题库-AgeFades-Note:记录AgeFades学习成长笔记

    关系型数据库 Redis、Mongo、ES... 常用NoSQL 大数据 shell 编程、Hadoop 基本体系... 数据结构和算法 基于Java 语言对 LeetCode 刷题以及数据结构学习记录 联系方式 QQ: 18433216 QQ群: 764340624

    AgeFades-Note:记录AgeFades学习成长笔记

    AgeFades-Note概述天行健,...数据库MySQL、Oracle 关系型数据库Redis、Mongo、ES... 常用NoSQL大数据shell 编程、Hadoop 基本体系...数据结构和算法基于Java 语言对 LeetCode 刷题以及数据结构学习记录联系方式QQ:

Global site tag (gtag.js) - Google Analytics