Oracle数据库-表的管理

王朝oracle·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

一、表的类型

常用表、分区表、索引组织表(Index-organized)、族表

二、Oracle数据类型

用户定义类型

内部定义类型:

1、数量:CHAR(N)/NCHAR(N)、VARCHAR2(N)/NVARCHAR2(N)、NUMBER(P,S)、DATE、TIMESTAMP、RAW(N)、BLOB/CLOB/NCLOB/BFILE、LONG/LONG RAW、ROWID/UROWID

2、集合:变量、表

3、关系:参考

其中:

RAW(N):存储小的二进制数据,在将RAW的数据类型通过应用工具传送到其他数据库的过程中Oracle Server不会对其进行字符集的转换。

LONG/LONG RAW:为9i之前使用的LOB类型。

三、ROWID格式

1、扩展ROWID格式

OOOOOO

FFF

BBBBBB

RRR

数据对象编号

相关文件编号

块编号

行编号

一个扩展ROWID需要10个字节,用18个字符表示,包含以下几个部分:

数据对象编号:在数据库对象产生的时候指定的全数据库唯一的编号。

相关文件编号:在一个表空间中是唯一的。

块编号:表示包含行块的位置。

行编号:在block(块)头中关于行信息位置的编号。

数据对象编号需要32位,相关文件编号需要10位,块编号22位,行编号16位,加在一起是80位或者10个字节。

一个扩展ROWID使用64进制编码来显示,使用6位显示对象编号,3位显示相关文件编号,6位显示块编号,3位显示行编号。64进制码使用“A-Z"、“a-z“、“0-9“加上“+”和“/”一共64个字符。

2、相对ROWID:在Oracle8以前使用相对ROWID,只使用6个字节存储。

3、使用ROWID定位一行

因为一个段只能在一个表空间中,使用数据对象编号就可以确定一行所在的表空间。表空间中相关的数据文件编号就可以确定文件,块编号就可以确定查找行所在的块,而行号就确定了这个唯一的行。行字典入口可以用来确定一行开始的地方。

四、行的结构

1、行头:纪录行中列的数量,连接信息和行琐状态。

2、行数据:对于每一列Oracle都会保存列的长度和值(如果列的值大小不超过250字节列的长度需要一个字节来存储。一个列的大小如果超过250个字节就需要3个字节来存储列的长度。列的值直接存放在列的后面。)

相邻的两行之间不需要额外的空间。在块中的每一行在行目录中都有一个位置(slot)。目录中的slot直接指向行开始的地方。

五、创建表

CREATE TABLE命令可以用来创建关系型表或者对象表。关系型表:基本的用户数据存储结构。对象表:用来存储对象类型的列,一个对象表默认情况下就是用来存储特定的对象类型数据。

创建表的原则:

1、将不同的表存放在不同的表空间。

2、使用本地模式管理表避免碎片。

在自己的方案(schema)中创建表,必须有CREATE TABLE权限,在其他方案中创建表必须有CREATE ANY TABLE权限。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航