关于约束

最近在工作中需要用到约束,对数据库表中的列的取值进行约束,特学习了一下内容

1.为表增加CHECK约束并自定义约束的名称
ALTER TABLE 表名 ADD CONSTRAINT 约束名称 CHECK (约束条件);
ALTER TABLE pol_main ADD CONSTRAINT chk_gp_type CHECK (gp_type = 'G' OR gp_type='P');
ALTER TABLE pol_main ADD CONSTRAINT chk_gp_type CHECK (gp_type IN ('G','P'));

2.根据约束名称删除该约束
ALTER TABLE 表名 DROP CONSTRAINT 约束名称;
ALTER TABLE pol_main DROP CONSTRAINT chk_pol_main_gp_type;

3.根据表名称查询对应该表建立的哪些约束、
oracle数据库:
(结果集列名包含:owner,constraint_name-约束名称,table_name,column_name,position-约束顺序)
select * from user_cons_columns cl WHERE cl.table_name='表名'
select * from user_cons_columns cl WHERE cl.table_name='POL_MAIN'

4.添加非空约束
alter table 表名 modify (列名 列类型 not null);
alter table pol_main modify (addr varchar2(100) not null);

5.删除非空约束
alter table 表名 modify 列名 列类型 null;
alter table pol_amin modify addr varchar2(100) null;

6.查询约束是主键约束还是什么类型的约束:是主键约束 ?:CKECK约束?
oracle数据库:
select constraint_name,constraint_type from user_constraints where table_name='表名';
select constraint_name,constraint_type from user_constraints where table_name='POL_MAIN';

7.添加主键约束
alter table 表名 add constraint 约束名 primary key (列举主键的列名)
alter table SKAT add constraint pk_SKAT primary key (SPRAS,KTOPL,SAKNR)

8.删除主键约束
alter table 表名 drop primary key;
alter table pol_main drop primary key;

 

 

 

posted @ 2019-12-04 10:59  永远都是星期八  阅读(145)  评论(0编辑  收藏  举报