--主、外键约束
create table t(
id int primary key);
create table t1(
id int references t(id));
或者
create table t(
id int constraint pk_t_id primary key);
create table t1(
id int constraint fk_t1_id references t(id));
修改列为主、外键约束
create table emp1(
id number(10),
name varchar2(20),
dept number(10)
);
create table dept1(
dept number(10),
dept_name varchar2(20)
);
alter table dept1
add constraint pk_dept1_dept primary key(dept);
alter table emp1
add constraint fk_emp1_dept foreign key(dept) references dept1(dept);
--创建非空约束列
create table t(
id number(10) constraint nn_t_id not null,
name varchar2(20),
company varchar2(20)
);
修改列为非空约束
create table t(
id number(10),
name varchar2(20),
company varchar2(20)
);
alter table t
modify id constraint nn_t_id not null;
--创建唯一约束列
create table t(
id number(10) constraint u_t_i unique,
name varchar2(20),
company varchar2(20)
);
修改列为唯一约束
alter table t
add constraint u_t_id unique(id);
--创建检查约束
create table aa3(
id number(10) constraint aa3_id_c check(id>=101),
name varchar2(20),
company varchar2(20)
);
修改列为检查约束
create table t2(
id int);
alter table t2
add constraint c_t2_id check(id>100);
--删除约束
alter table t2 drop constraint c_t2_id;
注意:对于外键约束的删除时有顺序的,要不然会提示,找到子记录的信息。先删子表的约束,再删父表的约束。
--查看约束
在oracle中,可以通过 user_constraints 视图来查找。
select table_name,constraint_name,constraint_type
from user_constraints
where table_name='大写的表名'
注意:oracle中约束是一用户名为指定范围存放的。也就是说一个用户名下面约束名子不能有重复,但整个数据库中,可以有相同的约束名。