外键 个人理解就是 外部的一个主键
Mysql里主键就是确保不能重复的一个关键词 primary
当前表的外键就是 当前表的属性名限制条件(类似与正则表达式的用法)
比如你成绩的范围是 0-10 如果另一个表的主键取了是0,1,2,3,4,5,6,7,8,9,10;就相当于限制只能取
0,1,2,3,4,5,6,7,8,9,10
所以知道了定义以后我们再看外键添加的语法
语法一
添加外键 那么就先需要外键的限制条件 那么就需要先创建主键表
(有外键的表 叫外键表,另外一个就叫主键表)
首先要有主键表 (就是现有限制条件 才能限制) 在主键表中设置好主键以后
外键表中引用的外键就是主键表的主键!
主键表 student 主键 Sno;
语法:
CONSTRAINT FK_fk FOREIGN KET(Sno) REFERENCES `student`(Sno);
限制 外键名 外键(主键表的主键) 参考 表名(主键表的主键)
从语法中更能看出来外键其实就是一个限制 一个名为 FK_fk的限制 外键Sno 依据主键限制产生.
语法二
第二种就是通过alter 添加外键 这种外键依然是需要主键表和外键表
Alter table 表名 CONSTRAINT FK_fk FOREIGN KET(Sno) REFERENCES `student`(Sno);
删除
Alter table 表名 Drop foreign key `FK_fk` ;
Alter table 表名 Drop index `FK_fk` ;