Oracle的数据表:

l         关系表

l         临时表

l         索引表

l         外部表

l         对象表

 

8.1数据类型

 

名称                               含义

Char                     用于描述定长的字符型数据,长度<=2000字节

varchar2                 用于描述变长的字符型数据,长度<=4000字节

nchar                    用来存储Unicode字符集的定长字符型数据,长度<=1000字节

nvarchar2                用来存储Unicode字符集的变长字符型数据,长度<=1000字节

number                   用来存储整型或者浮点型数值

Date                     用来存储日期数据

Long                     用来存储最大长度为2GB的变长字符数据

Raw                      用来存储非结构化数据的变长字符数据,长度<=2000字节

Long raw                 用来存储非结构化数据的变长字符数据,长度<=2GB

rowid                    用来存储表中列的物理地址的二进制数据,占用固定的10个字节

Blob                     用来存储多达4GB的非结构化的二进制数据

Clob                     用来存储多达4GB的字符数据

nclob                    用来存储多达4GBUnicode字符数据

Bfile                    用来把非结构化的二进制数据存储在数据库以外的操作系统文件中

urowid                   用来存储表示任何类型列地址的二进制数据

float                    用来存储浮点数

 

8.2创建表的策略

  8.2.1合理设计表

      这个不需要多说,这是创建一个高效的数据库的关键。至于如何设计一个高效的数据库,是一个从需求分析-〉概念结构设计-〉逻辑结构设计-〉物理设计的过程,这里很大一部分靠的是实际经验。积累吧,呵呵。

  8.2.2 合理的使用块中的存储空间

     前几章已经讲过,如果经常使用update操作则需要加大PCTFREE值,如果经常使用insert操作则需要加大PCTUSED值。

  8.2.3 合理指定表存储位置

     尽量不要将用户表创建在SYSTEM表空间中,尽量不要将同一个应用中的表分散在不同的表空间中。

  8.2.4使用NOLOGGING

在使用CREATE TABLE…AS SELECT语句时,尽量加上NOLOGGING子句。

  8.2.5大型表策略

尽量将表和索引放在不同的表空间中,为其分配足够的临时空间。

8.3创建表

   8.3.1创建关系表
or77.gif

创建表的语法很简单,如上图。不过这两个表是创建在了SYSTEM表空间中了。
or78.gif

上图的例子是通过查询创建的表,为了使用新的表空间,我们首先创建了一个名字叫test的表空间,之后又将temp2这张表创建在了test表空间中。当然这里也使用了很多参数,参数含义在前几章已经讲过了。下面我们再举一个参数比较全一点的例子如下图:
or79.gif

 8.3.2创建临时表

临时表在自动删除的时候有两种情况,一种是事物结束,一种是会话结束。

l         一种是事物结束:on commit delete rows

l         一种是会话结束: on commit preserve rows

如图:


or80.gif

8.3.3控制台创建表

以上都是使用oraclesqlplus worksheet 工具通过psql来创建表,当然我们也可以通过控制台通过鼠标来创建表


or81.gif

如上图,在展开的方案项目中鼠标右键表项目,通过创建选项也可以创建表。细节就不多说了,基本上的意思就是将我在上面提到的参数通过鼠标点选来创建表。


8.4
修改表


or82.gif

以上为修改表的语法示例。

8.5表存储空间

   8.5.1分配表存储空间

       一般来说当一个表需要更多的空间时oracle会自动分配。不过有时候我们可以手动为表分配新区。


or83.gif

增加一个大小等于next值的新区。

 8.5.2回收表存储空间


or84.gif

回收了所有空闲区空间。

8.6删除表

   删除的语法很简单:

   Delete from temp1;删除表中所有数据,比较占资源。

   Drop table temp1;将整个表彻底删除。

   Truncate table temp1;快速删除表中所有数据。

8.7约束

  8.7.1定义约束

  隐式约束,如下图


or85.gif

显式约束如下图:

or86.gif

8.7.2添加、删除约束


or87.gif

上图的语法演示了如何添加和删除一个约束。

8.7.3禁用、激活约束

有时候我们在插入批量数据的时候,会遇到数据库报的违反约束的错误,特别是外键约束尤其会引起这方面的问题。这个时候我们就需要将各个约束禁用掉,等修改好数据之后,再将其激活。语法如下图:

or88.gif

posted on 2006-08-02 19:08  coffeeliu  阅读(1555)  评论(0编辑  收藏  举报