当前位置导航:炫浪网>>网络学院>>编程开发>>Oracle教程

Oracle数据库-表的管理


  一、表的类型
  
  常用表、分区表、索引组织表(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权限。
相关内容
赞助商链接