数据库学习

  oracle查询表的约束条件

select * from user_constraints t where t.CONSTRAINT_NAME='约束名'
或
select * from user_constraints t where t.table_name = '表名'
oracle 启用或者禁用约束条件

alter table 表名 disable constraint 约束名 CASCADE 一定要有 CASCADE
更新或者删除完之后再启用
alter table 表名 enable constraint 约束名

添加NOT NULL约束

alter table tb_name

modity column_name constraint nt_name not null;

需要注意的是,添加NOT NULL约束并不使得add constraint语句,而是使用modify。

添加FOREIGN KEY约束

alter table tb_name1

add constraint fk_name

foreign key (column_name1) references tb_name2(column_name2);

在添加外键时,若在最后添加关键字on delete cascade,则在父表中删除一行记录时,子表中匹配的所有行也都将被删除。若添加关键字on delete set null则在父表删除一行记录时,子表中外键将被设置为空值。若添加关键字on delete no action则在父表删除一行记录时,子表中外键不做任何处理。

添加PRIMARY KEY约束

alter table tb_name

add constraint uk_name primary key (column_name);

添加CHECK约束

alter table tb_name

add constraint ck_name check (column_condition);

一般情况下,在添加一个约束时,表中现有的所有行都必须满足这个约束条件。然而,如果在最初添加约束时可以禁用约束并可以通过指定ENABLE NOVALIDATE选项来让约束只适用于新添加的数据。

添加UNIQUE约束

alter table tb_name

add constraint uq_name unique(column_name);

删除约束

alter table tb_name

drop constraint 约束名;

在删除主键约束时,若存在主外键关系,则必须加cascade关键字。

alter table tb_name

drop constraint primary key cascade;

删除约束时,默认将同时删除约束所对应的索引,如果要保留索引,用KEEP INDEX关键字。

alter table tb_name

drop primary key keep index;

posted @ 2017-06-01 10:13  码农小小强  阅读(172)  评论(0编辑  收藏  举报