ORACLE约束详细介绍



参照 http://blog.itpub.net/29785807/viewspace-1271431/

一 ADD约束名
not null(非空)
方法一:
SQL> create table t1(id number,name varchar2(20) constraint nn_t1_id not null);
SQL> create table t1(id number,name varchar2(20) not null);
SQL> select constraint_name,constraint_type,owner from user_constraints;
CONSTRAINT_NAME        C    OWNER
------------------------------ - ----------
NN_T1_ID                 C    SCOTT
方法二:
SQL> alter table t1 modify number constraint nn_t1_id not null;
方法三:
SQL> alter table t6 add constraint nn_t6_ck1 check(name is not null);

2 unique(唯一)
方法一:
SQL> create table t1(id number,qq number,constraint un_t1_qq unique(qq));
方法二:
SQL> alter table t1 add constraint un_t1_qq unique(qq);

3  primary key(主键)
方法一:
SQL> create table t1(id number,qq number,constraint pk_t1_id primary key(id));
SQL> create table t1(id number primary key,qq number);
方法二:
SQL> alter table t1 add constraint pk_t1_id primary key(id);

4  foreign key(外键)
方法一:
SQL> create table t2(id number,cc number,constraint fk_t2_id foreign key(id) references t1(id));
方法二:
SQL> alter table t1 add constraint pk_t2_id foreign key(id) references t1(id);

当定义了外部键约束之后,要求外部键列的数据必须在主表的主键列(或惟一列)中存在,或者为NULL,FOREING KEY约束既可以在列级定义,也可以在表级定义。

关键字说明:

SQL> create table t1(id number,qq number,constraint pk_t1_id primary key(id));
SQL> create table t2(id number,sal number,constraint fk_t2_id foreign key(id) references t1(id));

SQL> delete t1; ----由于主外键约束,无法删除主表

SQL> insert into t2 values(2,2); ---由于主外键的约束,无法在外键表插入主键中id列没有的值

SQL> drop table t2 purge;
SQL> create table t2(id number,sal number,constraint fk_t2_id foreign key(id) references t1(id) on delete cascade);  -----外键表添加级联删除参数
SQL> delete t1;   ----删除主键表上的数据,级联删除外键表上的数据
1 row deleted.

5  check(检查性约束)
方法一:
SQL> create table t3(id number,sal number,constraint ck_t3_sal check(sal between 5000 and 50000));
方法二:
SQL> alter table t3 add constraint ck_t3_sal check(sal>5000);


二 修改约束名

在同一个方案中,约束名必须惟一,并且约束名也不能与其他对象同名。当用IMPDP工具或者IMP工具导入其他对象时,如发现有同名的对象,将会出错

语法:

ALTER TABLE table_name RENAME CONSTRAINT old_constraint_name  TO new_constraint_name;

三 禁止约束

禁止约束指使约束临时失效。当禁止了约束之后,约束规则将不再生效。在使用SQL*LOADER或INSERT装载数据之前,为了加快数据装载速度,应该首先禁止约束,然后装载数据。

语法:
ALTER TABLE table_name DISABLE CONSTRAINT constaint_name [CASCAED];--CASCAED用于指定级联禁止从表的外部键

四 激活约束

语法:
ALTER TABLE table_name ENABLE CONSTRAINT constraint_name;

五 删除约束

当删除特定表的主键约束时,如果该表具有相关的从表,那么在删除主键约束时必须带有CASCAED选项
语法:

ALTER TABLE table_name DROP CONSTRAINT constraint_name |PRIMARY KEY

六 显示信息

1.USER_CONSTRAINTS
2.USER_CONS_COLUMNS

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值