当前位置:   article > 正文

在MySQL中,FOREIGN KEY的使用_mysql foreignkey

mysql foreignkey

MySQL中,可以使用FOREIGN KEY约束来定义表之间的关系。FOREIGN KEY约束用于确保在一个表中的数据与另一个表中的数据的完整性和一致性。

以下是使用FOREIGN KEY约束的步骤:

  1. 创建两个或多个表,其中一个表将作为引用表,另一个表将作为被引用表。
  2. 在被引用表中创建一个字段,该字段将用作外键,并引用引用表的主键
  1. -- 外键演示
  2. -- 用于定义主表
  3. -- 创建 主表 my_class
  4. CREATE TABLE my_class(
  5. id INT PRIMARY KEY, -- 班级编号
  6. `name` VARCHAR(32) NOT NULL DEFAULT '');
  7. -- 创建 从表 my_stu
  8. CREATE TABLE my_stu(
  9. id INT PRIMARY KEY, -- 学生编号
  10. `name` VARCHAR(32) NOT NULL DEFAULT '',
  11. class_id INT , -- 学生所在班级编号
  12. -- 下面指定外键关系
  13. FOREIGN KEY (class_id) REFERENCES my_class(id))
  14. -- 测试数据
  15. INSERT INTO my_class
  16. VALUES(100,'java'),(200,'web');
  17. INSERT INTO my_class
  18. VALUES(300,'Spring');
  19. SELECT * FROM my_class;
  20. INSERT INTO my_stu
  21. VALUES(1,'tom',100);
  22. INSERT INTO my_stu
  23. VALUES(2,'jack',200);
  24. INSERT INTO my_stu
  25. VALUES(3,'smith',300);
  26. INSERT INTO my_stu
  27. VALUES(4,'brow',NULL); -- 可以存入数据,因为外键 没有写 not null

  1. INSERT INTO my_stu
  2. VALUES(5,'grace',400); -- 【报错,原因,不存在班级号(class_id)为300】

 

  1. -- 一旦建立主外键的关系,数据不能随意删除
  2. DELETE FROM my_class
  3. WHERE id = 300;

  1. -- 如果想要删除相应的班级号,需要先删除学生,才能删除班级
  2. DELETE FROM my_stu
  3. WHERE class_id = 300;
  4. -- 删除班级学生后,再次删除my_class表中的班级号
  5. DELETE FROM my_class
  6. WHERE id = 300;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/394830
推荐阅读
相关标签
  

闽ICP备14008679号