oracle中提供了5种约束,目的:防止无效的或有问题的数据输入到表中,维护表的完整性
(1)非空(NOT NULL)约束,,定义的列不能为空
(2)唯一(UNIQUE)约束,表中每一行中所定义的列,列值不能相同
(3)主键(PRIMARY KEY)约束,唯一标识表中的一行
(4)外键(FOREIGN)约束,维系子表的主表的引用完整性
(5)条件(CHECK)约束,每行都要满足约束条件
约束关键字 constraint
完整性约束(主键约束)
(1)建表时,在列中添加primary key
create table A(
id vatchar(10) primarykey,
name varchar(10)
);
主键不能为空,且不能重复
(2)
create table B(
id varchar(10),
name varchar(12),
constraint c_id primary key(id)
);
在一个没有约束的表中添加约束
alter table A add constraint c_id primary key(id)
外键约束(引用完整性约束)
create table student(
s_id number(5) primary key,
s_name varcher(10),
t_id varchar(10),
constraint fk_stu foreign key(t_id) references team(t_id)
)
create table team(
t_id varchar(10) primary key,
t_name varchar(10)
)
外键:父子关系
外键可以很好的保护两个表之间的关系
constraint fk_stu foreign key(t_id) references team(t_id)
两表存在关联时,应该先删除约束或通过破坏外键直接删除