![fb5f20e319ca7307c2e9747d2ec89fa7.png](https://i-blog.csdnimg.cn/blog_migrate/3ef144ef57fce1600a4911e7f71f6ec4.jpeg)
春风得意
春风十里,不及相遇有你❤️
晴空万里,不及心中有你❤️
![21fa2c51d2dd6eba0df6692b920744fb.png](https://i-blog.csdnimg.cn/blog_migrate/b83f573bd3d55d357303d8db137ac5c1.png)
春天来了
美好的事都将如期而至
愿世界平安
你我无恙
???
so,让我们继续刷题吧
drop,truncate,delete
先养眼,再刷题
❤️
今天还是好看的小姐姐
![da5380d3a5a6fd6ff1d5ea57e3bef467.png](https://i-blog.csdnimg.cn/blog_migrate/6c68a1f15c6a84873e4f8d8ce3250f84.jpeg)
0
Question
Iet me see see
这次我们的话题可能有点紧张沉重
因为涉及到了删库跑路的环节
在面试中,有时候面试官可能会问
drop,truncate,delete的区别
我们的脑海中可能就是一个删除的操作
具体有什么区别,可能比较头大
这次我们就开始从各方面进行解析
![fdd56f15565ed34d58eafadbc212c4e3.png](https://i-blog.csdnimg.cn/blog_migrate/c39f1d66b0c227b62568dcbd895a45f1.jpeg)
1
Answer
Iet me see see
truncate:删除表的数据,但是表结构不变,比如id自增从1开始
delete:直接删除表中的所有数据
drop:直接删除掉表
![d27463d3448c6294ec9bfa8cae74a1a0.gif](https://i-blog.csdnimg.cn/blog_migrate/d7513b1bcdcf5cc7cd1642054a51b262.gif)
相同点:
truncate和不带where的delete,以及drop都会删除表中的所有数据。
drop,truncate都是DDL(数据定义语言)执行后会自动提交
不同点:
truncate和delete只删除表的数据,不删除表的结构。
drop:删除表的结构,依赖约束,触发器,索引;
并且表的存储过程和函数保留,但变为invalid状态。
![62c776c9be72aac2826396659ea28d44.png](https://i-blog.csdnimg.cn/blog_migrate/4786dbdf937ab5951b8e0a1cfa176891.jpeg)
![d27463d3448c6294ec9bfa8cae74a1a0.gif](https://i-blog.csdnimg.cn/blog_migrate/d7513b1bcdcf5cc7cd1642054a51b262.gif)
delete是数据库操作语言(dml),这个操作会放到rollback segement中,事务提交后才会生效,如果有响应的trigger,执行的时候才触发。
truncate,drop是数据库定义语言(ddl),操作立即生效,原数据不放到rollback segment中,不能回滚,操作不触发trigger。
![d27463d3448c6294ec9bfa8cae74a1a0.gif](https://i-blog.csdnimg.cn/blog_migrate/d7513b1bcdcf5cc7cd1642054a51b262.gif)
表和索引所占空间:
当表被truncate后,这个表和索引所占空间会恢复到初始大小。
delete后:不会减少表和索引所占空间的大小
drop:将表所占用的空间全部释放掉。
![d27463d3448c6294ec9bfa8cae74a1a0.gif](https://i-blog.csdnimg.cn/blog_migrate/d7513b1bcdcf5cc7cd1642054a51b262.gif)
速度:一般来说
drop>truncate>delete
![d27463d3448c6294ec9bfa8cae74a1a0.gif](https://i-blog.csdnimg.cn/blog_migrate/d7513b1bcdcf5cc7cd1642054a51b262.gif)
安全性:
慎用drop和truncate,尤其是没有备份的情况下!
在使用中,想删除部分数据要加上where子句,并且回滚段要足够大。
想删除表直接drop
想保留表同时删除数据,如果和事务没有关系就直接truncate。如果和事务有关,或者想出发trigger,还是delete。
![d27463d3448c6294ec9bfa8cae74a1a0.gif](https://i-blog.csdnimg.cn/blog_migrate/d7513b1bcdcf5cc7cd1642054a51b262.gif)
这次的问题
主要是说关于数据库删除操作
大家在操作中一定要谨慎谨慎再谨慎!
如果小伙伴还有其他的想法或问题也欢迎在评论区留言
让我们一起成长为老鸟,赚大钱!
![d27463d3448c6294ec9bfa8cae74a1a0.gif](https://i-blog.csdnimg.cn/blog_migrate/d7513b1bcdcf5cc7cd1642054a51b262.gif)
最后小编的小手手上图
![47e8c310a67fff015f8c3f8cfbbb1dc5.png](https://i-blog.csdnimg.cn/blog_migrate/d4a5f68ebdb183a5f42eca88bd160772.jpeg)
![d5fd14c68396e7897c14c9d7d4cfaace.gif](https://i-blog.csdnimg.cn/blog_migrate/3dee63fc11e72bd4b8546ed44c31a645.gif)
![1264480d8b38c4b1957ec72c158f529d.png](https://i-blog.csdnimg.cn/blog_migrate/9b2b63128fb31d2c26e2433565571152.png)
![af1cc6a1710f21481af9d2cd862c7207.png](https://i-blog.csdnimg.cn/blog_migrate/94ecce6cde9fe39afc282bab508f7408.png)
扫码关注我
郭大熊的公众号
个人博客 : www.guodaxiong.com
如果不曾见过阳光,我本可以忍受黑暗
Hi GuoDaXiong
我是狗子
祝你幸福