概念:表示两个表之间的相关联系,是表与表之间保持数据一致性,完整性,主要目的是控制存储在外键表中的数据,约束,外键只能引用外表中的列的值或使用空值。
这两个表必须满足三个条件
- 使用在外键关系的域必须与数据类型相似
- 使用在外键关系的域必须为索引型(Index)
- 两个表必须是InnoDB数据引擎
创建外键有两种方式:
1.可以在创建表的时候创建
2.也可以在创建表之后创建。
可以在创建表的时候创建:
create table `student`(
`id` int primary key,
`name` char(4),
`dept` char(9),
`sex` char(4)),
create table `grade`(
`id` int ,
`grade` int,
constraint `fk_id` foreign key (`id`) references `student` (`id`)
)engine=innodb default charset=utf8
在创建表之后再创建外键:
alter table grade
add constraint `fk_id` forign key(`id`) references `student` (`id`);