主键约束,就是控制某个表的字段必须符合外面对应字段的内容。如下t_studendt.cno 必须对应上t_class.cno字段下存在的值,否则就不会就会报错。
    创建顺序
    先创建父表再创建子表。
    删除顺序
    删除时候需要先删除子表再删除父表。

    1. t_class 班级表
    2. cno(pk) cname
    3. -----------------------------
    4. 100 清华小学六年级1
    5. 101 清华小学六年级2
    6. t_student 学生表
    7. no(pk) name cno(FK 引用t_class => 班级编号)
    8. ----------------------------------------
    9. 1 小明 100
    10. 2 小红 100
    11. 3 小花 101
    12. 4 小黑 101
    13. 5 小们 101
    14. 5 小岁 102 -- 错误因为对应的外键不存在102
    1. -- 外健约束
    2. CREATE TABLE t_class (
    3. cno INT PRIMARY KEY,
    4. class VARCHAR(255)
    5. )
    6. CREATE TABLE t_student(
    7. id INT PRIMARY KEY AUTO_INCREMENT,
    8. name VARCHAR(255),
    9. cno INT,
    10. -- 当前表的cno 引用 t_class表的cno字段
    11. FOREIGN KEY (cno) REFERENCES t_class(cno)
    12. )
    13. INSERT INTO t_class(cno,class) VALUES(100,"清华小学六年级1班");
    14. INSERT INTO t_class(cno,class) VALUES(101,"清华小学六年级2班");
    15. INSERT INTO t_student(name,cno) VALUES("小明",100);
    16. INSERT INTO t_student(name,cno) VALUES("小红",100);
    17. INSERT INTO t_student(name,cno) VALUES("小花",100);
    18. INSERT INTO t_student(name,cno) VALUES("小妹",101);
    19. INSERT INTO t_student(name,cno) VALUES("小黑",101);
    20. INSERT INTO t_student(name,cno) VALUES("小会",101);

    设置好的外键约束的字段,只能使用匹配到的字段。如下,t_class里面只有100,101,所以t_student只能使用100,101。
    image.png