sql语句中删除表 drop、truncate和delete的用法
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的用法相关推荐
- MySQL删除s表命令_SQLServer数据库sql语句中----删除表数据drop、truncate和delete的用法...
本文主要向大家介绍了SQLServer数据库sql语句中----删除表数据drop.truncate和delete的用法,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助. 虽 ...
- SQL语句中删除表数据drop、truncate和delete的用法
一.SQL的语法 1.drop table 表名称 // drop table dbo.Sys_Test2.truncate table 表名称 // truncate table dbo.Sys_T ...
- SQL语句中----删除表数据drop、truncate和delete的用法
一.SQL中的语法 1.drop table 表名称 eg: drop table dbo.Sys_Test 2.truncate table ...
- Oracle中删除表(drop,truncate,delete)
drop命令 drop table 表名:例如:删除商品表 drop table commodity:注意:1.用drop删除表数据,不但会删除表中的数据,连表结构也被删除了! truncate命令 ...
- oracle修改表结构的sql命令是什么,sql语句中修改表结构的命令是什么?
sql语句中修改表结构的命令是:"ALTER TABLE"命令. ALTER TABLE 语句用于在已有的表中添加.删除或修改列. SQL ALTER TABLE 语法 如需在表中 ...
- java得到sql语句表名_使用fdb-sql-parser替换SQL语句中的表名
导语 因为项目中要做跨数据源的数据分析功能,所以使用Presto这个开源框架.但是使用Presto的时候需要指定当前表所在的数据库类型和数据库名,所以需要对SQL语句中的表名进行捕获和替换. 一.探索 ...
- MySQL中修改表结构的关键字_下列SQL语句中,修改表结构的关键字是
[单选题]对<将进酒>全诗分析不正确的是 [单选题]下列划线词语的解释有误的一项是 [多选题]下列食品属于不完全蛋白质的是 ( ) . [单选题]下列聚合函数中属性列必须是数值型的是 [单 ...
- python解析sql语句表名_python正则表达式匹配sql语句中的表名
[ string text = "select * from [admin] where aa=1 and cc='b' order by aa desc "; Regex reg ...
- 转 Oracle 删除表,oracle 中删除表 drop delete truncate 的区别
相同点,使用drop delete truncate 都会删除表中的内容 drop table 表名 delete from 表名(后面不跟where语句,则也删除表中所有的数据) truncate ...
最新文章
- 04. 字符串合并与拆分写法小结
- LeetCode 32 最长有效括号
- IPM analysis request DB table
- CF848C Goodbye Souvenir
- 为什么哲学是最难的学科_什么是哲学哲学对大师来说可能非常理论化,没有一定哲学基础肯能很难 爱问知识人...
- mysql有子查询么_sql-带有子查询的mysql更新查询
- python单元测试mock_Python单元测试的Mock是怎么回事
- 使用POI读写word docx文件
- 数据科学 IPython 笔记本 7.13 向量化字符串操作
- C/C++ 随机数生成器的 随机化
- 文字超出显示....省略显示
- “数学不行,干啥也不行!”CTO:基础差的程序员,你不知道有多难!
- Struts action-mapping 元素讲解
- 【优化算法】蝠鲼觅食优化算法(MRFO)【含Matlab源码 1435期】
- 面向GitHub学习网课
- 关于帧差法的想法(opencv)
- 华为nova2s应用计算机,华为nova2s 如何打开多个应用 | 手游网游页游攻略大全
- 网页去广告服务器,使用 AdGuardHome,实现网页加速和去广告
- 字符串与数字相互转化
- php 读取解析excel文件内容,怎么用PHP读取Excel文件信息及内容?(图文+视频教程)...