赞
踩
在MySQL中,可以使用FOREIGN KEY约束来定义表之间的关系。FOREIGN KEY约束用于确保在一个表中的数据与另一个表中的数据的完整性和一致性。
以下是使用FOREIGN KEY约束的步骤:
- -- 外键演示
- -- 用于定义主表
-
- -- 创建 主表 my_class
- CREATE TABLE my_class(
- id INT PRIMARY KEY, -- 班级编号
- `name` VARCHAR(32) NOT NULL DEFAULT '');
-
- -- 创建 从表 my_stu
- CREATE TABLE my_stu(
- id INT PRIMARY KEY, -- 学生编号
- `name` VARCHAR(32) NOT NULL DEFAULT '',
- class_id INT , -- 学生所在班级编号
- -- 下面指定外键关系
- FOREIGN KEY (class_id) REFERENCES my_class(id))
-
- -- 测试数据
- INSERT INTO my_class
- VALUES(100,'java'),(200,'web');
- INSERT INTO my_class
- VALUES(300,'Spring');
-
- SELECT * FROM my_class;
-
- INSERT INTO my_stu
- VALUES(1,'tom',100);
- INSERT INTO my_stu
- VALUES(2,'jack',200);
- INSERT INTO my_stu
- VALUES(3,'smith',300);
- INSERT INTO my_stu
- VALUES(4,'brow',NULL); -- 可以存入数据,因为外键 没有写 not null

- INSERT INTO my_stu
- VALUES(5,'grace',400); -- 【报错,原因,不存在班级号(class_id)为300】
- -- 一旦建立主外键的关系,数据不能随意删除
- DELETE FROM my_class
- WHERE id = 300;
- -- 如果想要删除相应的班级号,需要先删除学生,才能删除班级
- DELETE FROM my_stu
- WHERE class_id = 300;
- -- 删除班级学生后,再次删除my_class表中的班级号
- DELETE FROM my_class
- WHERE id = 300;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。