Mysql数据库入门4

级联操作

级联操作 CASCADE
当修改或者删除主表的数据,从表随之变化;

有了外键的关联:员工表emp的dept_id关联与dept表的id
修改和删除比较麻烦,需要操作从表,在操作主表!

创建员工表

CREATE TABLE emp(
	id INT PRIMARY KEY AUTO_INCREMENT, -- 员工编号
	NAME VARCHAR(10), -- 员工姓名
	gender VARCHAR(3), -- 员工性别
	dept_id INT,  -- 员工的部门id
	CONSTRAINT  -- 声明
	dept_emp_fk -- 外键名称 
	FOREIGN KEY  -- 外键作用在 
	(dept_id)  -- 从表的dept_id字段
	REFERENCES   -- 关联
	dept(id) --  主表的主键id
	ON UPDATE CASCADE  -- 级联修改
	ON DELETE CASCADE  -- 级联删除

) ;

INSERT INTO emp(NAME,gender,dept_id) VALUES('高圆圆','女',2),
('文章','男',1),('王宝强','男',1),('张佳宁','女',2);
INSERT INTO emp(NAME,gender,dept_id) VALUES('赵又廷','男',4);

修改主表的数据,1号部门—3号部门 (级联修改)

UPDATE dept SET id = 3 WHERE id = 1;

删除主表的数据,从表数据随之删除…(级联删除)

DELETE FROM dept WHERE id = 2 ;

sql添加和删除外键

sql删除外键 alter table 表名 drop FOREIGN KEY 外键名称;

ALTER TABLE emp DROP FOREIGN KEY dept_emp_fk;

通过sql添加外键
alter table 表名
add CONSTRAINT 外键名称 FOREIGN KEY 从表的某个id
REFERENCES
主表的某个字段(主键字段id)
级联修改
级联删除

ALTER TABLE emp 
ADD CONSTRAINT dept_emp_fk FOREIGN KEY 
(dept_id) REFERENCES dept(id) ON UPDATE CASCADE ON DELETE CASCADE ;
INSERT INTO emp(NAME,gender,dept_id) VALUES('张三','男',3) ;

查询部门表和员工表的所有数据
SELECT * FROM emp;
SELECT * FROM dept ;


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值