oracle笔记-常用数据类型

oracle支持多种表类型:

  • 堆组织表(heap prganized,默认的“普通”表):数据在其中以堆的方法管理。增加数据时,会找到并使用段中第一个能放下此数据的自由空间。
  • 索引组织表(index organized table):按索引结构存储。IOT对信息检索,空间数据和OLAP应用特别有用。
  • 索引聚簇表(index clustered):聚簇是指一个或多个表组成的组,这些表中的数据物理地址存储在相同的数据块上,有相同聚簇键值的所有物理行存储在相邻的位置。索引聚簇表的优点是当平凡访问以聚簇键连接的多个表时,能减少磁盘IO并提高查询性能。
  • 散列聚簇表(hash clustered):散列聚簇是将键散列到聚簇上,从而直接找到数据应该在哪个数据库块上。在散列聚簇中,数据就是索引。如果需求频繁的通过键的相等性比较来读取数据,散列聚簇表就很适用。
  • 嵌套表(nested):是系统生成和维护的父、子关系的子表。
  • 临时表(temporary):存储事务期间或会话期间的“草稿”数据。临时表根据需求从当前用户的临时表空间份分配临时段。每个会话只能看到本会话分配的区段,而不会看到其他会话创建的任何数据。
  • 对象表(object):基于某种对象类型创建的表。
  • 外部表(extenrnal table):表中的数据不存储在数据库中,而是放在数据库外。

视图

由查询sql组成,简化对多个表数据的访问 ,可以保证表中数据的安全,将应用与表中某些特定的结构分离。

序列

create sequence sq_name
        ncrement by 1    --增长度
        start with 1     --开始值
         maxvalue(最大值) 或者  nomaxvalue  
        order        --指定一定往下增加
        nocycle(cycle)  -- 是否循环
        cache 10      --CACHE(缓冲)定义存放,对序列进行内存缓冲,可以改善序列的性能

同义词

create [or replace] [public] synonym 同义词名称 for [用户名.]对象名; 

触发器

create or replace trigger tg_name......... 

索引

主要分为B*树索引、位图索引(bitmao index)、位图联接索引(bitmap join index)、基于函数的索引(function-based index)和应用域索引(application domain index)。

B树索引主要的子类型:索引组织表(index organized),B树聚簇索引(B * tree cluster index),降序索引(descending index),反向键索引(reverse key index)。

其中:·

  • UNIQUE代表创建惟一索引,不指明为创建非惟一索引。
  • BITMAP 代表创建位图索引,如果不指明该参数,则创建B*树索引。列名是创建索引的关键字列,可以是一列或多列。

B-树索引在Oracle中是一个通用的索引,在创建索引时它就是默认的索引类型。最多可以包括32列。

位图索引Oracle为每个唯一键创建一个位图,然后把与键值所关联的ROWID保存为位图。最多可以包括30列。

位图索引在加载表(插入操作)时通常要比B-树索引做得好。通常,位图索引要比一个低基数(指这个列只有很少的可取值)上的B-树索引要快3~4倍,但如果新增的值占插入行的70%以上时,B-树索引通常会更快一些。当每条记录都增加一个新值时,B-树索引要比位图索引快3倍。

查看索引是否生效:

alter index index_name monitoring usage;

###可变数组

语法:a、

  1. ​ 创建一个类型作为可变数组基类型 :

    CREATE TYPE ELEMENT_TYPE AS OBJECT (...); 
    
  2. 基于基类型创建可变数组类型:

    CREATE OR REPLACE TYPE TYPE_NAME AS VARRAY(maximun_size) OF ELEMENT_TYPE [NOT NULL]
    

    其中,TYPE_NAME为可变数组的名字, ELEMENT_TYPE表示可变数组的类型(基类型) not null表示数组元素不能为null。

###嵌套表

嵌套表是表中之表。一个嵌套表是某些行的集合,它在主表中表示为其中的一列。对主表中的每一条记录,嵌套表可以包含多个行。在某种意义上,它是在一个表中存储一对多关系的一种方法。

语法:

  • 创建一个类型作为嵌套表类型 CREATE TYPE ELEMENT_TYPE AS OBJECT (。。。);

  • 基于基类型创建嵌套表类型CREATE OR REPLACE TYPE TYPE_NAME AS TABLE OF ELEMENT_TYPE

    其中,TYPE_NAME 为嵌套表的名字, ELEMENT_TYPE表示嵌套表的类型(基类型);

###伪列

Oracle 中伪列就像一个表列,但是它并没有存储在表中,伪列可以从表中查询,但不能插入、更新和删除它们的值,常用的伪列有ROWID和ROWNUM。
ROWID 是表中行的存储地址,该地址可以唯一地标识数据库中的一行,可以使用 ROWID 伪列快速地定位表中的一行。如:scott中SELECT rowid,empno,ename,job FROMemp;
ROWNUM 是查询返回的结果集中行的序号,可以使用它来限制查询返回的行数。如:scott中SELECT rownum,empno,ename,job FROM emp;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值