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) 的区别相关推荐

  1. mysql中delete和drop的区别,SQL中DELETE和DROP的简单比较

    在SQL命令中DELETE和DROP都是可以用于删除数据库的元素,那么它们之间有什么区别?下面本篇文章就给大家简单比较一下DELETE和DROP,介绍DELETE和DROP的区别,希望对大家有所帮助. ...

  2. mysql中delete,truncate,drop区别

    drop和delete只是删除表的数据(定义),drop语句将删除表的结构.被依赖的约束(constrain).触发器 (trigger).索引(index);依赖于该表的存储过程/函数将保留,但是变 ...

  3. Oracle delete truncate drop 的区别

    1. delete/truncate 只删除数据不删除表,索引的结构. drop 将删除表的结构及依赖的 index/constrain/trigger,依赖于该表的 procedure/functi ...

  4. SQL中delete和drop的区别

    1.drop drop除了把表的全部数据删除以外.还把表的结构都删除了.删除的结构包括表的视图,索引,存储过程,函数等 2.delete delete是根据你所写的where条件删除掉表中的部分数据. ...

  5. Oracle中TRUNCATE、DELETE和DROP的区别?

    Oracle中TRUNCATE.DELETE和DROP的区别? 区别: 1.删除表时表数据方面 delete是每次从表中删除一行,同时将删除操作作为事务写进日志以便回滚操作,在有该操作的触发器时,执行 ...

  6. truncate delete 与 drop的区别

    一张表几亿条数据.根据task_id删除几千万. delete删除后查询,发现查询速度还是没有变快.explain查看 rows并没有发生变化.查询速度肯定也不会变化.原因? truncate del ...

  7. 关于数据库中的delete,truncate,drop

    关于数据库中的delete,truncate,drop Delete Delete :删除数据表中的行(可以删除某一行,也可以在不删除数据表的情况下删除所有行). 删除某一行:Delete from ...

  8. MySQL中DELETE操作磁盘空间不会减少的原因

    MySQL中delete操作 在InnoDB中,delete操作并不会真的删除数据,mysql实际上只是给要删除的数据打了标记,标记为删除.磁盘所占空间不会变小,即表空间并没有真正被释放. 这样设计的 ...

  9. mysql中视图和表的区别及联系,mysql 中视图和表的区别以及联系是什么?

    表是内容,视图是窗口.视图是已经编译好的sql语句,是基于sql语句的结果集的可视化的表,而表不是. 2)实与虚 表属于全局模式中的表,是实表:视图属于局部模式的表,是虚表. 3)是否存在物理记录 视 ...

  10. mysql''和null,mysql中NULL和null的区别

    接触php的web开发一段时间了,在进行数据库操作的时候经常会遇到一个问题,使得同一字段在页面显示时有3种类型NULL,null以及数字,当时的解决办法是将这一字段定义为varchar类型,在插入数据 ...

最新文章

  1. oracle:自定义函数
  2. Oracle linux R5-U7中YUM 源配置
  3. 基于Struts2的文件上传
  4. mysql 算子 谓词_[SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式
  5. ASP.NET+AJAX简单的文体编辑器
  6. Android实现网络音乐播放器
  7. Maven: git-commit-id-plugin插件
  8. java long类型赋值_Java语言编程第22讲——如何理解“Java是强类型语言”
  9. python文件写入方式_Python写入文件的方式
  10. classes是什么意思怎么读_Classes是什么意思_Classes的翻译_音标_读音_用法_例句_爱词霸在线词典...
  11. 社会网络分析能干什么?
  12. 专访AWR市场副总裁Sherry Hess:全面发力 深耕中国市场
  13. iO逆向 触动精灵网络请求
  14. 电阻 电容 电感 磁珠的选型总结对比
  15. Android文字广告(Textview上下滚动),使用TextSwitcher控件实现
  16. C语言——百钱百鸡问题分析(最优解法)
  17. 画了张图,总结了机房里AAU、RRU以及各模块之间的走线关系和线束规格类型
  18. 大学英语综合教程一 Unit 6 课文内容英译中 中英翻译
  19. 力扣小练习(Java)
  20. revit服务器位置,Revit官方教程丨“位置”选项卡

热门文章

  1. 优秀的软件企业为何倒下?
  2. 九月腾讯,创新工场,淘宝等公司最新面试三十题(更新至10.04)
  3. 漫谈微服务架构:什么是Spring Cloud,为何要选择Spring Cloud
  4. 垃圾回收算法与垃圾回收器
  5. set 和select 的区别
  6. [c/c++] programming之路(25)、字符串(六)——memset,Unicode及宽字符,strset
  7. 通过profile 用maven命令打不同配置的变量包
  8. PHP 如何判断当前用户已在别处登录
  9. Android SDK 2.2 开发环境安装
  10. SharePoint GridView的使用2——DataSourceView的使用