Oracle删除表数据的三种方式
创始人
2024-05-26 10:57:00
0

简介

 oracle数据库mysql数据库都是如此 drop命令>truncate命令>delete命令,它们的执行方式、效率和结果各有不同。还是万年的student 学生表 自己可以建个尝试这玩一下。

drop命令

语句:   drop table 表名;

理由:1、用drop删除表数据,不但会删除表中的数据,连结构也会被删除!

           2、将被隐式提交。

truncate命令

语句:   truncate  table  表名;

理由:1、用truncate删除表数据,只是删除表中的数据,表结构不会被删除!
           2、删除整个表的数据时,过程是系统一次性删除数据,效率比较高
           3、truncate删除释放空间

           4、将被隐式提交。

delete命令

语句:  delete from 表名;
理由:1、用delete删除表数据,只是删除表中的数据,表结构不会被删除!
           2、虽然也是删除整个表的数据,但是过程是系统是一行一行的删,效率也比truncate低
           3、delete删除是不释放空间的

           4、delete是DML语句,不会自动提交,需手动提交事务。

总结:

1、drop、truncate都是(DDL)语言(数据定义语言),向其他所有的(DDL)语言一样,它将被隐式提交。delete是(DML)语句,不会自动提交。

2、 truncate 和delete 只删除数据不删除表的结构,drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引(index);依赖于该表的存储过程/函数将保留,但是变为invalid (无效)状态。

3、delete 语句是数据库操作语言(DML),这个操作会放到rollback segment 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。

4、truncate、drop 是数据库定义语言(DDL),操作立即生效,原数据不放到rollback segment 中,不能回滚,操作不触发 trigger。

5、delete 语句不影响表所占用的extent,高水线(high watermark)保持原位置不动、drop 语句将表所占用的空间全部释放。

6、truncate 语句缺省情况下将空间释放到 minextents个extent,除非使用reuse storage;truncate 会将高水线复位(回到最开始)。

7、速度等级分别: drop命令>truncate命令>delete命令

8、实际使用以及安全性:谨慎使用 drop和 truncate,一旦执行没有退步的余地。如想删除部分数据行用 delete加上where条件子句。 想删除表当然是 drop了、想保留表而将所有数据删除,如果和事务无关,用truncate即可。如果和事务有关,或者想触发trigger,还是用delete。如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入或插入数据。

 9、truncate  table  表名   在功能上与不带   WHERE   子句的  DELETE   语句相同:二者均可删除表中的全部行。但   truncate  table   比   delete   速度快,且使用的系统和事务日志资源少。 

10、delete  语句每次删除一行,并在事务日志中为所删除的每行记录一项。truncate  table   通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。 

 11、truncate  table   删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用  delete。如果要删除表定义及其数据,请使用   drop  table   语句。  

 12、对于有   foreign  key   约束引用的表,不能使用  truncate   table,而应使用不带   where   子句的  delete   语句。由于   truncate   table   不记录在日志中,所以它不能激活触发器。    
 13、truncate  table   不能用于参与索引视图的表。

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...