truncate与delete 使用上区别 ?
truncate 删除记录后不可恢复的,不受事务管理,原理:先删除整个表,重新创建
delete 可以被事务管理 ,在事务中删除数据可以回滚恢复,原理: 一行一行删除数据记录
truncate 删除所有记录性能上 好于 delete

1.drop table xx --xx是数据表的名字

作用:删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。

把表的结构也删除了 下次要使用的时候要重新创建表的结构再插入数据

2.truncate table xx

作用:删除内容、释放空间但不删除定义。与drop不同的是,他只是清空表数据而已,不删除表结构。

truncate 释放空间的体现。truncate table test 后 向test表添加数据,id标识列连续了(体现了truncate删除是释放空间)

插入的字段的id重新从1开始递增 1、2、3.....

3.delete table xx

作用:也是删除整个表中的数据 表结构不会删除,但是过程是痛苦的(系统一行一行地删,效率较truncate低) 或delete table tb where 条件

删除内容不删除定义,不释放空间。

用delete删除 数据,然后添加。可以看到添加之后id标识不连续。(说明delete删除不释放空间)

如果重新插入数据时对应的id在上次基础之上递增 4、5、6....

在实际应用中,三者的区别是明确的。

当你不再需要该表时, 用 drop;

当你仍要保留该表,但要删除所有记录时, 用 truncate;

当你要删除部分记录时(always with a WHERE clause), 用 delete.

4.truncate 与delete 比较:

truncate table 在功能上与不带 WHERE 子句的 delete语句相同:二者均删除表中的全部行。

truncate 比 delete速度快,且使用的系统和事务日志资源少。

truncate 操作后的表比Delete操作后的表要快得多。

当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。

1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令Delete将被撤销,而TRUNCATE则不会被撤销。
2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。
3、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比Delete操作后的表要快得多。
4、TRUNCATE不能触发任何Delete触发器。
5、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。
6、不能清空父表。在oracle里,使用delete删除数据以后,数据库的存储容量不会减少,而且使用delete删除某个表的数据以后,查询这张表的速度和删除之前一样,不会发生变化。因为oralce有一个HWM高水位,它是oracle的一个表使用空间最高水位线。当插入了数据以后,高水位线就会上涨,但是如果你采用delete语句删除数据的话,数据虽然被删除了,但是高水位线却没有降低,还是你刚才删除数据以前那么高的水位。除非使用truncate删除数据。那么,这条高水位线在日常的增删操作中只会上涨,不会下跌,所以数据库容量也只会上升,不会下降。而使用select语句查询数据时,数据库会扫描高水位线以下的数据块,因为高水位线没有变化,所以扫描的时间不会减少,所以才会出现使用delete删除数据以后,查询的速度还是和delete以前一样。

sql语句中删除表 drop、truncate和delete的用法相关推荐

  1. MySQL删除s表命令_SQLServer数据库sql语句中----删除表数据drop、truncate和delete的用法...

    本文主要向大家介绍了SQLServer数据库sql语句中----删除表数据drop.truncate和delete的用法,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助. 虽 ...

  2. SQL语句中删除表数据drop、truncate和delete的用法

    一.SQL的语法 1.drop table 表名称 // drop table dbo.Sys_Test2.truncate table 表名称 // truncate table dbo.Sys_T ...

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

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

  4. Oracle中删除表(drop,truncate,delete)

    drop命令 drop table 表名:例如:删除商品表 drop table commodity:注意:1.用drop删除表数据,不但会删除表中的数据,连表结构也被删除了! truncate命令 ...

  5. oracle修改表结构的sql命令是什么,sql语句中修改表结构的命令是什么?

    sql语句中修改表结构的命令是:"ALTER TABLE"命令. ALTER TABLE 语句用于在已有的表中添加.删除或修改列. SQL ALTER TABLE 语法 如需在表中 ...

  6. java得到sql语句表名_使用fdb-sql-parser替换SQL语句中的表名

    导语 因为项目中要做跨数据源的数据分析功能,所以使用Presto这个开源框架.但是使用Presto的时候需要指定当前表所在的数据库类型和数据库名,所以需要对SQL语句中的表名进行捕获和替换. 一.探索 ...

  7. MySQL中修改表结构的关键字_下列SQL语句中,修改表结构的关键字是

    [单选题]对<将进酒>全诗分析不正确的是 [单选题]下列划线词语的解释有误的一项是 [多选题]下列食品属于不完全蛋白质的是 ( ) . [单选题]下列聚合函数中属性列必须是数值型的是 [单 ...

  8. python解析sql语句表名_python正则表达式匹配sql语句中的表名

    [ string text = "select * from [admin] where aa=1 and cc='b' order by aa desc "; Regex reg ...

  9. 转 Oracle 删除表,oracle 中删除表 drop delete truncate 的区别

    相同点,使用drop delete truncate 都会删除表中的内容 drop table 表名 delete from 表名(后面不跟where语句,则也删除表中所有的数据) truncate ...

最新文章

  1. 04. 字符串合并与拆分写法小结
  2. LeetCode 32 最长有效括号
  3. IPM analysis request DB table
  4. CF848C Goodbye Souvenir
  5. 为什么哲学是最难的学科_什么是哲学哲学对大师来说可能非常理论化,没有一定哲学基础肯能很难 爱问知识人...
  6. mysql有子查询么_sql-带有子查询的mysql更新查询
  7. python单元测试mock_Python单元测试的Mock是怎么回事
  8. 使用POI读写word docx文件
  9. 数据科学 IPython 笔记本 7.13 向量化字符串操作
  10. C/C++ 随机数生成器的 随机化
  11. 文字超出显示....省略显示
  12. “数学不行,干啥也不行!”CTO:基础差的程序员,你不知道有多难!
  13. Struts action-mapping 元素讲解
  14. 【优化算法】蝠鲼觅食优化算法(MRFO)【含Matlab源码 1435期】
  15. 面向GitHub学习网课
  16. 关于帧差法的想法(opencv)
  17. 华为nova2s应用计算机,华为nova2s 如何打开多个应用 | 手游网游页游攻略大全
  18. 网页去广告服务器,使用 AdGuardHome,实现网页加速和去广告
  19. 字符串与数字相互转化
  20. php 读取解析excel文件内容,怎么用PHP读取Excel文件信息及内容?(图文+视频教程)...

热门文章

  1. H5前端,正方体动画效果
  2. 密码学安全强随机数生成器_强密码学简介
  3. 不知名菜鸟的day15
  4. 6-8 简单阶乘计算(10 分) 本题要求实现一个计算非负整数阶乘的简单函数。
  5. 软件的基于生命周期开发方法
  6. 一款小巧好用的全局鼠标手势软件——MouseInc
  7. 教你如何秒杀12306,JAVA程序抢票成功 分享 附截图
  8. 列出美国每个州及一个邮编
  9. wordpress在线播放php插件,让WordPress视频播放插件Smartideo支持B站BV号
  10. 树莓派自启板载蓝牙(ble)