日期:2014-05-16  浏览次数:20376 次

oracle 创建表及其相关约束

?  在我们项目的开发过程中,数据库的开发是很常见的,本文简单介绍下非常基本的数据库操作,主要包括以下方面:

?

?

  • ?创建表
  • ?创建触发器
  • ?创建存储过程
  • ?创建索引
  • 创建视图

创建表

基本语法结构:??

?

CREATE TABLE [schema.]tablename 
( column1 datatype, 
column2,datatype ...... )
 [TABLESPACE space_name]
 [PCTFREE integer] 
[PCTUSED integer]
 [INITRANS integer]
 [MAXTRANS integer] 
[STORAGE stroage_clause]
 [LOGGING|NOLOGGING] 
[CACHE|NOCACHE] 

?

SCHEMA: 表的所有者

TABLE: 表名

column1 :属性名

datatype :属性的数据类型

TABLESPACE: 表的空间名

PCTFREE :用来为一个块保留的空间百分比,以防止在今后的更新操作中增加一列或多列值的长度

PCTUSED :一个块的使用水位的百分比,这个水位将使该块返回到可用列表中去等待更多的插入操作

INITRANS :在块中预先分配的事物项数,默认为1

MAXTRANS :在块中可以分配的最大事物项数,最大为255

LOGGING :将表的创建记录到重做日志中

NOLOGGING: 部将表的创建记录到重做日志中

STORAGE :当数据增长时,如何将区分配给表的数据增长

CACHE :在进行全表扫描时,为表建立的索引的块将放置在高速缓存的lru 列表的最近使用的一端

NOCACHE :在进行全表扫描时,为表建立的索引的块将放置在高速缓存的lru 列表的最近未使用的一端

例子:??

??

TABLE TAN.Student 
( StuentId INTEGER NOT NULL, 
Name VARCHAR2(200 CHAR) NOT NULL ENABLE, 
Age NUMBER, 
classid INTEGER NOT NULL, 
STATUS VARCHAR2(10) NULL, 
ADD_USER VARCHAR2(20) NULL,
 ADD_TS DATE DEFAULT SYSDATE, 
MOD_USER VARCHAR2(20) NULL, 
MOD_TS DATE NULL CONSTRAINT PK_STUDENT_ID PRIMARY KEY(StuentId) ) 
STORAGE( 
        INITIAL 100K
    NEXT 100K 
    MINEXTENTS 2
      MAXEXTENTS 100 PCTINCREASE 100) 

?

?说明:

????? 初始给Student 表分配两个Extent
  第一个Extent100K ,因INITIAL=100K
  第二个Extent100K ,因NEXT=100K
  如果因表内数据增长,需要分配第三个Extent ,因PCTINCREASE100 ,则