在实际开发的项目中,一个健壮数据库中的数据一定有很好的参照完整性。例如学生表和成绩单两张表,如果成绩单中有张三的成绩,学生表中张三的档案却被删除了,这样就会产生垃圾数据或者错误数据。为了保证数据的完整性,将两张表之间的数据建立关系,因此就需要在成绩表中添加外键约束
班级表创建
create table classes(
id int(4) primary key not null auto_increment,
name varchar(30)
);
学生表创建
create table students(
sid int(4) not null primary key,
sname varchar(36),
gid int(4) not null
);
引入外键之后,外键列只能插入参照列存在的值,参照列被参照的值不能被删除,这就保证了数据的参照完整性。
添加外键
alert table 表名 add constraint 外键名字 foreign key(外键字段名) references 外表表名(
主键字段名)
验证外键的作用
insert into student (sid, sname, gid) values(1000, 'dog', 111);
删除外键约束
alter table 表名 drop foreign key 外键名;