oracle数据库约束

约束用于确保数据库数满足业务规则。

约束包括:NOT NULL,UNIQUE,PRIMARY KEY,FOREIGN KEY以及CHECK等5种类型。

建立主键约束和唯一约束时,Oralce会基于约束列自动建立唯一索引;主键约束不允许为NULL,唯一约束允许为NULL。

一张表只能建立一个主键约束。

建表约束:NOT NULL只能在列级定义;其它4种既可以在列级定义,也可以在表级定义。复合主键约束只能在表级定义。

维护约束:增加NOT NULL约束时必须使用MODIFY子句,而增加其它约束时需要使用ADD子句。

 

第一, 定义约束

---------------------------------------------

语法

CREATE  TABLE  [SCHEMA.]table_name(

column_name  datatype  [DEFAULT  expr]  [column_constraint],

...

[table_constraint][, ...]

);

 

例子

CREATE TABLE tt_user_info
(
  ID    VARCHAR2(20 BYTE),
  NAME  VARCHAR2(20 BYTE)                       NOT NULL,
  category_id VARCHAR2(20 BYTE)  REFERENCES tb_out_service(serviceid),
  remark   VARCHAR2(1000)
);

ALTER TABLE tt_user_info ADD (
  CHECK ( LENGTH(NAME)>2),
  PRIMARY KEY (ID),
  UNIQUE (NAME)
  );

 

说明

1. NOT NULL,非空约束

not null

2. UNIQUE,唯一约束

UNIQUE (COL_NAME)

3. PRIMARY KEY,主键约束

primary key (col_name1 [, col_name2])

4. FOREIGN KEY,外键约束

它有三种类型:

references  primary_table(primary_col)

on delete cascade

on delete set null

5. CHECK,检查约束

check (money > 1000)

 

第二, 维护约束

----------------------------------------

1. 增加约束

NOT NULL使用ALTER MODIFY子句,其它的使用ALTER  ADD子句

-------------------------------

CREATE TABLE tt_user(NAME VARCHAR2(20));

ALTER TABLE tt_user MODIFY user_name NOT NULL;
ALTER TABLE tt_user ADD CONSTRAINT constraint_name UNIQUE(NAME);
ALTER TABLE tt_user ADD CONSTRAINT constraint_name PRIMARY KEY(NAME);
ALTER TABLE tt_user ADD parentid VARCHAR2(20)
    CONSTRAINT constraint_name
        REFERENCES tb_out_service(serviceid);

 

2. 修改约束名

ALTER TABLE table_name RENAME CONSTRAINT old_constraint_name TO new_constraint_name

 

3. 删除约束

ALTER TABLE table_name DROP CONSTRAINT constraint_name

 

4. 禁止约束

ALTER TABLE table_name DISABLE CONSTRAINT constraint_name  [CASCADE];

 

5.激动约束

ALTER TABLE table_name ENABLE CONSTRAINT constraint_name;

 

第三. 显示约束信息

所有约束信息

SELECT *
  FROM user_constraints

 

用户约束所对应的表列

SELECT *
  FROM user_cons_columns;

posted on 2009-03-12 15:03 JavaBegger 阅读(925) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 
<2009年3月>
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

常用链接

留言簿(2)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜