MySQL删除数据(八)下

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: MySQL删除数据(八)

四.二.一 将子表的外键属性更新为null,断开数据关系


还是以 部门编号为2的数据进行演示。 开发部下面有岳泽霖和精小妹,员工编号为 3和5.


1 .将员工3和5的 deptId 更新为 null. 然后查询


  update u set deptId=null where id=3 or id=5;


20191121110002598.png


2 . 再重新删除 id=2的部门数据。


  delete from dept where id=2;


20191121110011625.png


可以正常的删除了。


四.二.二 删除外键关联,断开结构的关系


这个时候,删除 id=1的部门, 还是会报错的,同样是外键关联的错误。


2019112111001756.png


上面断开数据关系,仅仅是断开了 deptId=2的,并没有断开 deptId=1的,所以删除id=1的,同样会报错。


1 . 断开 外键关联。 外键的名称叫做 FK_U_deptId


  alter table u drop foreign key FK_U_deptId;


20191121110024214.png


2 . 重新删除 id=1的部门记录


  delete from dept where id=1;


20191121110029395.png


其中,很容易明白, 四.二.一 只是针对的某些数据进行删除外键,四.二.二 是针对父表中的所有数据,从结构上断开的。


四.二.三 删除子表数据


无论 deptId 是有值的,还是无值的,都是可以直接删除的。 外键关联,是在删除父表时起作用, 在插入子表和修改子表时起作用。 所以,删除子表,是可以直接删除的。


     delete from u where id=3 or id=4;


20191121110613511.png


四.二.四 删除父表时的引用方式


20191121110749418.png


实际上 SQL 有五种方式:


1 . Restrict

2 . No Action

3 . Cascade

4. Set NULL

5. Set Default


MySQL 不支持 set Default , 故只有四种。


其中, Restrict 是默认的方式, 删除和修改时的默认方式。


Restrict : 会检查约束,如果子表中有数据,则不允许删除或者更新。


No Action: 会检查约束,如果子表中有数据,则不允许删除或者更新,与 Restrict 相同。


Cascade: 级联操作。 如果是删除的话,父表可以删除,同时将子表的中数据也删除。 如果是更新的话,父表可以更新,同时将子表 中的外键属性值数据也更新。 (hibernate 常用级别操作)


set null: 父表可以进行删除和更新,同时将 子表中的外键值设置成 null值。


五. Drop, truncate, delete 的区别


删除数据库表中的记录,有三种方式:


1 .drop table 表名


2 . truncate 表名


3 . delete from 表名


三者的侧重点是不一样的,是有很大区别的。 使用者应该根据不同的情况,使用不同的命令执行。


drop 是删除表, 不但会删除表中的数据,而且连表的结构都会删除。


truncate 只会删除表的数据,不会删除表的结构。 是一次性删除数据,相比较于 delete, 效率较高。 会释放空间,自动增长 auto_increment 也会重新开始。


delete 只会删除表的数据,不会删除表的结构。 删除时,是一行一行的删除,相比较于 truncate, 效率低。 不会释放空间, 自动增长 auto_increment 是不会重新开始的。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
存储 关系型数据库 MySQL
mysql添加和删除数据库以及数据类型
mysql添加和删除数据库以及数据类型
76 1
|
5月前
|
SQL 关系型数据库 MySQL
MySQL删除数据后磁盘空间的释放总结
MySQL删除数据后磁盘空间的释放总结
221 0
|
1月前
|
关系型数据库 MySQL
Mysql基础第二十三天,更新和删除数据
Mysql基础第二十三天,更新和删除数据
18 0
Mysql基础第二十三天,更新和删除数据
|
2月前
|
关系型数据库 MySQL 数据库
mysql如何正确的删除数据(drop,delete,truncate)
mysql如何正确的删除数据(drop,delete,truncate)
36 0
|
7月前
|
关系型数据库 MySQL 数据库
在MySQL数据库中插入、更新与删除数据
在MySQL数据库中插入、更新与删除数据。
62 2
|
3月前
|
关系型数据库 MySQL 数据库
MySQL数据库-多表关联删除数据
MySQL数据库-多表关联删除数据
20 1
|
3月前
|
SQL 关系型数据库 MySQL
MySQL新增数据,修改数据,删除数据
MySQL新增数据,修改数据,删除数据
|
4月前
|
SQL 关系型数据库 MySQL
MySQL 删除数据表
MySQL中删除数据表是非常容易操作的,但是你在进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失。
|
4月前
|
关系型数据库 MySQL PHP
MySQL 删除数据库
MySQL 删除数据库
|
4月前
|
SQL 存储 关系型数据库
③【操作表数据】MySQL添加数据、修改数据、删除数据
③【操作表数据】MySQL添加数据、修改数据、删除数据
34 0