日期:2014-05-16 浏览次数:20516 次
一、方案
方案是数据库用户拥有的数据库对象的集合,方案对象是直接引用数据库的逻辑结构,对象包括表、索引、序列、视图、同义词等结构。
这一章大部分内容,我们在SQL的第九章创建和管理表及约束和第十章其它常用对象都已讲过,做一些补充。
二、表
1、表的类型
(1)堆组织表
堆表就是普通表,也叫堆组织表。之所以这样叫,是因为他使用数据结构中堆的算法来组织表。堆表的特点就是插入的行没有顺序。
(2)索引组织表
索引组织表(index organizedtable)就是存储在一个索引结构中的表。一定要有索引,其实也就是一定要有一个主键,表中行的顺序将按照主键的顺序,依次排列。索引组织表的ROWID被称为UROWID,也被称为逻辑ROWID,它的主要成份是主键,是可变的。
(3)聚簇表
聚簇(CLUSTER)是指:如果一组表有一些共同的列,则将这样一组表存储在相同的数据库块中;聚簇还表示把相关的数据存储在同一个块上。
A、索引聚簇表:利用聚簇索引来查找数据的聚簇类型称为索引聚簇。
B、散列聚簇表:利用哈希函数来查找数据的聚簇类型称为哈希聚簇(也称为散列聚簇)
(4)临时表
临时表可以提高数据库处理性能,在没有必要存储时,就存储临时中,用户只能够操作各自的数据中。
分有两类临时表:会话级的临时表和事务级的临时表。
(5)外部表
外部表,是指存储在Oracle数据库之外的表,数据库中只有表结构的定义,真正的数据并未存储在数据库中。外部数据表都是只读的,因此在外部表不能够执行DML操作,也不能创建索引。
2、创建表
(1)创建组织表
gyj@OCM> Create table t15(id int, name varchar2(10));
Table created.
(2)创建一个简单的索引组织表
gyj@OCM> create table iot10(id int primary key,namevarchar2(20),job varchar2(40)) organization index tablespace tp1;
Table created.
(3)索引聚簇表
我来建两个表一个是班级代码表,一个是学生基本信息表,现在利用聚簇表把jsj01(计算01)班的学生都存储在同一个块上,如果一个块放不下,则存储在尽可能少的几个块中。
Student(sname,classno)
Joe jsj01 Rose jsj01 Jack jsj01 Tom jsj02 Jeny jsj02 Tony jsj02 Lewis jsj02
|
|
Class(classno, cname)
jsj01 计算机01 jsj02 计算机02 jsj03 计算机03 jsj04 计算机04
|
|
student_class_cluster
|