外键
如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。外键是用来实现参照完整性的
外键必须是主表的唯一字段,外键是主表中的唯一字段(超键),外键的数值可以重复,这样主表和从表就建立了一个一对多的关系
加入外键的条件:a、两个表有相同属性字段,取值范围相同;
b、外键在主表中是主键或者是唯一字段;
c、外键可以是多个字段的组合。
记住一句话:从表的外键是主表的主键或唯一字段。
老师(#teacherid,名字) 主表
学生(#studentid,名字,teacher(foreign key)
) 从表
- 外键保持数据的一致性和完整性
- 外键所在表(学生表)插入一条新数据时会检查此键值是否包含于主键所在表(老师表)
[什么是外键?为什么要使用外键?如何来用?不用会怎样?] - 删除主表(老师表)一组数据要确保从表(学生表)对应的数据也被删除了
(http://blog.csdn.net/xianyu_0418/article/details/4469072)
create table teacher (
id int PRIMARY KEY,
name varchar(100),
age int
)
create table class(
id int ,
teacherid int REFERENCES teacher(id) on delete CASCADE ON UPDATE CASCADE,
name varchar(100)
PRIMARY KEY(id)
)