多表_SQL约束-外键约束
2022/4/17 19:43:03
本文主要是介绍多表_SQL约束-外键约束,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
外键约束
主键:可以唯一标识一条记录的列
外键:从表中与主表的主键对应的字段
主表:外键所指向的表,约束其他表的表
从表:外键所在的表,被约束的表
价值:建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性
建立外键约束
-
创建表时添加外键约束:
CONSTRAINT [外键约束的名称] FOREIGN KEY (外键字段) REFERENCES [主表名称(主键字段)]
-
添加外键约束:
ALTER TABLE [表名] ADD CONSTRAINT [外键约束的名称] FOREIGN KEY [外键字段] REFERENCES [主表名称(主键字段)]
alter table emp_part add constraint emp_dept foreign key(dept_id) references dept(id);
# 创建一个关联到主表的从表 CREATE TABLE emp_part( emp_id INT PRIMARY KEY AUTO_INCREMENT, ename VARCHAR(20), age INT , gender VARCHAR(10), dept_id INT, -- 添加外键约束 CONSTRAINT emp_dept FOREIGN KEY(dept_id) REFERENCES dept(id)
删除外键约束
- 语法:
ALTER TABLE [表名] DROP FOREIGN KEY [外键约束名称]
- 注意事项
- 从表外键数据类型必须与主表的主键一致
- 删除数据时,需先删除从表数据再删除主表的数据
- 添加数据时先添加主表数据,再添加从表数据
# 删除外键约束 ALTER TABLE emp_part DROP FOREIGN KEY emp_dept # 插入一条非法数据 INSERT INTO emp_part VALUES(1,'cindy',20,'female','4') SELECT * FROM emp_part # 向主表中插入一条数据 INSERT INTO dept VALUES(2,'运营部','张三','北京') # 向从表中插入一条数据 INSERT INTO emp_part VALUES(1,'cindy',20,'female','2') # 删除主表中的数据 DELETE FROM dept WHERE id=2
级联删除
- 删除主表数据的同时,也删除掉从表中相关的数据;即当你删除一个部门信息,就会把所关联的该部门员工信息删除。
- ON DELETE CASCADE
alter table emp_part add constraint emp_dept foreign key(dept_id) references dept(id) on delete cascade;
这篇关于多表_SQL约束-外键约束的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?