mysql中的外键
2018-04-13 本文已影响35人
没睡醒的鱼
什么是外键?
在一个表中存在的另一个表的主键称为此表的外键

为什么要使用外键呢?
为了让一张表记录的数据不要太过冗余,在数据库中对表关系进行解耦,尽量让表记录的数据单一化。
为什么说外键能保持数据的一致性?
在不设置外键的情况下,表1中的学号字段与表2中的学号字段时没有关联的,仅仅是你觉得他们之间有关系而已,数据库认为他们之间一点关系都没有。假设你在表2中插入一个学号,这个学号在表1中是没有的,但是数据库任然允许你插入。而在设置了外键的情况下,当对表2进行学号插入时,必须确保表1中的学号字段也要有这个值。当对表1的数据进行删除时,必须保证表2相应的字段中没有该值,否则就没法删除。