1.什么是外键,简单可以理解为依赖
定义:外键是指引用另外一个表中的一列或多列数据,被引用的列应该具有主键约束或者唯一性约束。外键用来建立和加强两个表数据之间的连接。
student
和grade
,学生表中的gid
是学生所在的班级id
,是引入了班级表grade中的主键id。
那么gid就可以作为表student表的外键
。
被引用的表,即表grade是主表
,
引用外键的表,即student,是从表
两个表是主从关系。表student用gid可以连接表grade中的信息,从而建立了两个表中的连接。
可以这么理解,外键即依赖关系,可以明确的声明表和表之间的关系额字段的参照关系,这种就叫做表和表之间声明了一个外键。
2.Navicat中的外键设置说明
CASCADE
:父表delete、update的时候,子表会delete、update掉关联记录;
SET NULL
:父表delete、update的时候,子表会将关联记录的外键字段所在列设为null,所以注意在设计子表时外键不能设为not null;
RESTRICT
:如果想要删除父表的记录时,而在子表中有关联该父表的记录,则不允许删除父表中的记录;
NO ACTION
:同 RESTRICT,也是首先先检查外键;