MySQL中(delete、truncate、drop) 的区别
delete、truncate、drop的用法
MySQL 数据表中delete删除数据的通用语法:
###删除 students_tbl 表中 student_id 为3 的记录:
delete from students_tbl where student_id=3;
MySQL 数据表中truncate删除数据的通用语法:
###删除 students_tbl 表中的所有记录:
truncate table students_tbl
MySQL 数据表中drop删除数据的通用语法:
###删除名为 students 的数据库:
drop database students
delete、truncate、drop的区别
truncate和 delete只删除数据不删除表的结构(定义) ,drop语句将删除表的数据以及结构
delete是DML语句,操作会被放到 rollback segment中,事务提交后才生效,以便进行进行回滚操作(可恢复)。
truncate、drop是DLL语句,操作立即生效,原数据不放到 rollback segment中,不能回滚(不可恢复)。
delete操作之后表或索引所占的空间不会减少,truncate操作之后表和索引所占用的空间会恢复到初始大小,drop语句将表所占用的空间全部释放。
删除速度: delete < truncate < drop ;
总结:
1、delete 语句可以使用where子句实现部分删除,而truncate不可以,会将表中的整个数据全部删除,使用时,可以按需求选择;
2、如果想从表中删除所有的数据,不要使用delete,可以使用truncate语句,因为这样执行速度更快。truncate语句实际是删除原来的表然后重新建立一个新表;
3、在没有备份情况下,谨慎使用 drop 与 truncate。要删除表结构使用drop;
4、对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。
删除表内部分数据用delete,删除表内所有数据并且保留表的结构用truncate,删除表或者库用drop
MySQL中(delete、truncate、drop) 的区别相关推荐
- mysql中delete和drop的区别,SQL中DELETE和DROP的简单比较
在SQL命令中DELETE和DROP都是可以用于删除数据库的元素,那么它们之间有什么区别?下面本篇文章就给大家简单比较一下DELETE和DROP,介绍DELETE和DROP的区别,希望对大家有所帮助. ...
- mysql中delete,truncate,drop区别
drop和delete只是删除表的数据(定义),drop语句将删除表的结构.被依赖的约束(constrain).触发器 (trigger).索引(index);依赖于该表的存储过程/函数将保留,但是变 ...
- Oracle delete truncate drop 的区别
1. delete/truncate 只删除数据不删除表,索引的结构. drop 将删除表的结构及依赖的 index/constrain/trigger,依赖于该表的 procedure/functi ...
- SQL中delete和drop的区别
1.drop drop除了把表的全部数据删除以外.还把表的结构都删除了.删除的结构包括表的视图,索引,存储过程,函数等 2.delete delete是根据你所写的where条件删除掉表中的部分数据. ...
- Oracle中TRUNCATE、DELETE和DROP的区别?
Oracle中TRUNCATE.DELETE和DROP的区别? 区别: 1.删除表时表数据方面 delete是每次从表中删除一行,同时将删除操作作为事务写进日志以便回滚操作,在有该操作的触发器时,执行 ...
- truncate delete 与 drop的区别
一张表几亿条数据.根据task_id删除几千万. delete删除后查询,发现查询速度还是没有变快.explain查看 rows并没有发生变化.查询速度肯定也不会变化.原因? truncate del ...
- 关于数据库中的delete,truncate,drop
关于数据库中的delete,truncate,drop Delete Delete :删除数据表中的行(可以删除某一行,也可以在不删除数据表的情况下删除所有行). 删除某一行:Delete from ...
- MySQL中DELETE操作磁盘空间不会减少的原因
MySQL中delete操作 在InnoDB中,delete操作并不会真的删除数据,mysql实际上只是给要删除的数据打了标记,标记为删除.磁盘所占空间不会变小,即表空间并没有真正被释放. 这样设计的 ...
- mysql中视图和表的区别及联系,mysql 中视图和表的区别以及联系是什么?
表是内容,视图是窗口.视图是已经编译好的sql语句,是基于sql语句的结果集的可视化的表,而表不是. 2)实与虚 表属于全局模式中的表,是实表:视图属于局部模式的表,是虚表. 3)是否存在物理记录 视 ...
- mysql''和null,mysql中NULL和null的区别
接触php的web开发一段时间了,在进行数据库操作的时候经常会遇到一个问题,使得同一字段在页面显示时有3种类型NULL,null以及数字,当时的解决办法是将这一字段定义为varchar类型,在插入数据 ...
最新文章
- oracle:自定义函数
- Oracle linux R5-U7中YUM 源配置
- 基于Struts2的文件上传
- mysql 算子 谓词_[SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式
- ASP.NET+AJAX简单的文体编辑器
- Android实现网络音乐播放器
- Maven: git-commit-id-plugin插件
- java long类型赋值_Java语言编程第22讲——如何理解“Java是强类型语言”
- python文件写入方式_Python写入文件的方式
- classes是什么意思怎么读_Classes是什么意思_Classes的翻译_音标_读音_用法_例句_爱词霸在线词典...
- 社会网络分析能干什么?
- 专访AWR市场副总裁Sherry Hess:全面发力 深耕中国市场
- iO逆向 触动精灵网络请求
- 电阻 电容 电感 磁珠的选型总结对比
- Android文字广告(Textview上下滚动),使用TextSwitcher控件实现
- C语言——百钱百鸡问题分析(最优解法)
- 画了张图,总结了机房里AAU、RRU以及各模块之间的走线关系和线束规格类型
- 大学英语综合教程一 Unit 6 课文内容英译中 中英翻译
- 力扣小练习(Java)
- revit服务器位置,Revit官方教程丨“位置”选项卡
热门文章
- 优秀的软件企业为何倒下?
- 九月腾讯,创新工场,淘宝等公司最新面试三十题(更新至10.04)
- 漫谈微服务架构:什么是Spring Cloud,为何要选择Spring Cloud
- 垃圾回收算法与垃圾回收器
- set 和select 的区别
- [c/c++] programming之路(25)、字符串(六)——memset,Unicode及宽字符,strset
- 通过profile 用maven命令打不同配置的变量包
- PHP 如何判断当前用户已在别处登录
- Android SDK 2.2 开发环境安装
- SharePoint GridView的使用2——DataSourceView的使用