MYSQL外键约束(FOREIGN KEY)

概念:外键用来两个表的数据之间建立连接,保证数据的一致性和完整性。

为什么会有外键约束呢:举个例子,有两个表,分别是员工表和部门表,A,B,C都是销售部的,如果没有外键约束,我现在删掉销售部,但是在员工表里,A,B,C仍然是销售部的,这样信息就有误;如果加上外键约束,数据库就不允许我先删去部门,而是要先删去员工表中属于销售部的所有员工,接下来我才可以删去部门表中的销售部。

第一步:先建立两个表(员工表和部门表):

-- 部门表
CREATE TABLE department(
id int PRIMARY KEY auto_increment,
`dep_name` VARCHAR(20),
`address` VARCHAR(20)
);
-- 员工表
CREATE TABLE staff(
id INT PRIMARY KEY auto_increment,
`name` VARCHAR(20),
age INT,
dep_id INT);

第二步:把数据加到两个部门里去

-- 添加两个部门
INSERT into department(`dep_name`,`address`)VALUES
('研发部','广州'),('销售部','深圳');
INSERT INTO staff(`name`,age,dep_id)VALUES
('张三',20,1),('李四',20,1),('王五',20,1),('赵六',20,2),('孙七',22,2),('周八',18,2);

第三步:想办法将两个表建立联系。

这时候就需要用到外键约束:

语法:

(1)添加约束

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键字段名称) REFERENCES 主表名称(主列表名称);

(2)删除约束

ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

所以添加外键约束为:

ALTER TABLE staff ADD CONSTRAINT wj_staff_department FOREIGN KEY(dep_id)REFERENCES department(id);

这时候再想删除部门表就会报错: 

 目前为止,你的外键约束就建立成功了。祝你每天开心,每天多学一点点。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

垫脚摸太阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值