相同点:
truncate和不带where子句的delete, 以及drop都会删除表内的数据
 
 
不同点:
1. truncate和 delete只删除数据不删除表的结构 drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index);
依赖于该表的存储过程/函数将保留,但是变为invalid状态.
 
2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger, 执行的时候将被触发.
truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发 trigger.
 
3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动。
drop语句将表所占用的空间全部释放
truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage;
truncate 会将高水线复位(回到最开始).
 
4.速度,一般来说: drop> truncate > delete
 
5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及. 
想删除部分数据行用delete,注意带上where子句. 回滚段要足够大.
想删除表,当然用drop 想保留表而将所有数据删除.
如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还 是用delete.
如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据
 
6.实际应用:
delete from table; //删除所有数据
truncate table; //将auto_increatement调制从0开始,实际就是从1开始

drop、 truncate 、 delete的更多相关文章

  1. sql语句中----删除表数据drop、truncate和delete的用法

    sql语句中----删除表数据drop.truncate和delete的用法 --drop drop table  tb   --tb表示数据表的名字,下同 删除内容和定义,释放空间.简单来说就是把整 ...

  2. MySql的Delete、Truncate、Drop分析

    MySql的Delete.Truncate.Drop分析 相同点: truncate 和不带 where 子句的 delete,以及 drop 都会删除表内的数据 不同点 1. truncate 和 ...

  3. SQL Server delete、truncate、drop

    在T-SQL中这三个命令符,相信很多朋友都不会陌生的,我自己在工作也会常常使用到它们,虽然我们清除的知道用这三个命令符可以达到怎样的预期效果. 但是却很少深入的去了解它们,知道它们有什么区别,又各有什 ...

  4. oracle中delete、truncate、drop的区别

    oracle中delete.truncate.drop的区别 标签: deleteoracletable存储 2012-05-23 15:12 7674人阅读 评论(0) 收藏 举报  分类: ora ...

  5. drop、truncate和delete的区别 [转载]

    drop.truncate和delete的区别 本文转载自: https://www.cnblogs.com/zhizhao/p/7825469.html     (1)DELETE语句执行删除的过程 ...

  6. mysql中 drop、truncate和delete的区别

    mysql中drop.truncate和delete的区别 (1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作. TRUNC ...

  7. 2019.6.13_SQL语句中----删除表数据drop、truncate和delete的用法

    一.SQL中的语法 1.drop table 表名称                         eg: drop table  dbo.Sys_Test   2.truncate table 表 ...

  8. mysql之drop、truncate和delete的区别

    今天在整理mysql数据库笔记的时候突然想到一个问题,就是drop.truncate和delete的区别,乍一看三者都是有删除的功能,但是具体来看还是有很多区别的.我先把这三个的作用简单说一下,有前辈 ...

  9. SQL语句中drop、truncate和delete的用法

    一.SQL中的语法 1.drop table  dbo.Sys_Test   2.truncate  table dbo.Sys_Test                     3.delete f ...

  10. drop、truncate、delete功能介绍和三者间区别

    一.delete 1.delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表 ...

随机推荐

  1. push和join

    Push,向数组末尾添加元素,并返回长度. Join,将数组按照join参数连接起来. 不同浏览器对JS解析不同,Join比连接字符串快,要用大量数据测试,然后比时间.

  2. MVC 依赖注入扩展

    需求: 小明想要完成一个功能F,需要一把锤子T. 有两种办法可以实现: 1)小明很爱动手,精力很旺盛,于是,自己创建一个具有功能F的锤子T,并使用T来完成F: 2)小明很懒,天天睡大觉,于是,他叫小健 ...

  3. DelPhi学习网站

    http://www.2ccc.com/downloads.asp?subcatalogid=101&pageid=14 http://www.2ccc.com/ http://www.xue ...

  4. C#可以获取Excel文件中Sheet的名字

    C#可以获取Excel文件中Sheet的名字吗 C#可以获取Excel文件中Sheet的名字吗 我试过WPS的表格可以 可以 要代码么 百度都有 [深圳]Milen(99696619)  14:13: ...

  5. COJ0700 数学(一)

    试题描述 现在有一大堆数,请你对这些数进行检验. 输入 第一行:CAS,代表数据组数(不大于500000),以下CAS行,每行一个数字,保证在64位长整形范围内,并且没有负数.你需要对于每个数字检验是 ...

  6. Update From 用法

    今天遇到用一个表的字段填充另一个表的问题,整理了一下   1.在mysql中,应该使用inner join,即: UPDATE   a INNER JOIN b ON a.userName = b.u ...

  7. Linux下PS命令详解

    要对系统中进程进行监测控制,查看状态,内存,CPU的使用情况,使用命令:/bin/ps (1)         ps :是显示瞬间进程的状态,并不动态连续: (2)         top:如果想对进 ...

  8. Cdn加速

    http://www.bootcdn.cn/ http://cdn.code.baidu.com/ backbone <script src="https://cdn.bootcss. ...

  9. 活跃天数计算用户等级模仿QQ的升级方式

    QQ等级的算法:设当前等级为N,达到当前等级最少需要的活跃天数为D,当前活跃天数为Dc,升级剩余天数为Dr,则: 从而推出: 好了,引述完成,懒得写字了,贴出代码: 复制内容到剪贴板 代码: < ...

  10. [转]如何:定义和处理 SOAP 标头

    本文转自:http://msdn.microsoft.com/zh-cn/library/vstudio/8728chd5(v=vs.100).aspx 本主题专门介绍一项旧有技术.现在应通过使用以下 ...