在MySQL中,FOREIGN KEY的使用

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

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

  1. 创建两个或多个表,其中一个表将作为引用表,另一个表将作为被引用表。
  2. 在被引用表中创建一个字段,该字段将用作外键,并引用引用表的主键
-- 外键演示
-- 用于定义主表

-- 创建 主表 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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值