在Mysql中使用外键,可以有效地将多个表格的数据“联动”起来,打破独立状态,互相影响。
创建表时创建外键
创建两个表格,
一个名为class,
create table classes(
id int not null primary key,
name varchar(30)
);
另一个名为student
create table student(
sid int not null primary key,
sname varchar(30),
cid int not null,
constraint fk_cid foreign key(cid) references classes(id)
);
这里声明外键的语法为:
constraint 外键名 foreign key(要作为外键字段名) references 主表名(主表中关联的字段)
外键名是在这里给外键新命的名字,用来标记外键。
外键所在的表称为“从表”,主键所在的表称为主表。
给存在的表添加外键
也可以给已经存在的表格添加外键。
alter table student add constraint fk_cid foreigh key(cid) references class(id)
语法:
alter table 从表名 add constraint 外键名 foreign key(cid) references 主表名(主表中关联字段名)
删除外键约束
删除外键约束是指删除某字段的外键属性,而不是删除该字段。
alter table student drop foreign key fk_cid;
语法:
alter table 从表 drop foreign key 外键名;
删除外键是根据创建外键时命名的外键名,不是外键所在的字段名。
外键关联主键后,主键所在的主表将不能被删除。从表依然可以被删除。