drop、delete与truncate的区别

DELETE 与 TRUNCATE、DROP 的区别 DELETE、TRUNCATE和DROP是三种不同的数据库操作命令:DELETE属于DML,用于删除特定行数据,可回滚且触发触发器;TRUNCATE属于DDL,快速清空表数据并重置存储结构,性能更高但通常不可回滚;DROP完全删除表结构及所有相关对象。关键区别在于操作粒度(DELETE是行级,TRUNCATE是表级,DROP是对象级)、事务性及性能(DROP最快,DELETE最慢)。使用时需根据是否需要条件删除、事务支持或完全移除表结构等需求选择合适命令。不同数据库在实现上可能有特殊细节,面试时应结合具体场 阅读详情
drop、delete与truncate的区别
drop直接删掉表;truncate删除表中数据,再插入时自增长id又从1开始;delete删除表中数据,可以加where字句。

(1) DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。

(2) 表和索引所占空间。当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小,而DELETE操作不会减少表或索引所占用的空间。drop语句将表所占用的空间全释放掉。

(3) 一般而言,drop > truncate > delete。

(4) 应用范围。TRUNCATE 只能对TABLE;DELETE可以是table和view。

(5) TRUNCATE 和DELETE只删除数据,而DROP则删除整个表(结构和数据)。

(6) truncate与不带where的delete:只删除数据,而不删除表的结构(定义)drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index);依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid。

(7) delete语句为DML(data maintain Language),这个操作会被放到 rollback segment中,事务提交后才生效。如果有相应的 tigger,执行的时候将被触发。

(8) truncate、drop是DLL(data define language),操作立即生效,原数据不放到 rollback segment中,不能回滚。

(9) 在没有备份情况下,谨慎使用 drop 与 truncate。要删除部分数据行采用delete且注意结合where来约束影响范围。回滚段要足够大。要删除表用drop;若想保留表而将表中数据删除,如果于事务无关,用truncate即可实现。如果和事务有关,或是想触发trigger,还是用delete。

(10) Truncate table 表名 速度快,而且效率高,因为:truncate table 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

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

(12) 对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。
truncate drop delete 的区别 昨天在工作的时候,遇到了一个问题,开发要truncate某个表的时候 报错,对这个表赋予了 select ,insert,update,delete on a用户.表 to b用户 ,的权限。 又赋予了 grant all on a to b(意思是把b用户的所有权限都给a。 又赋予了grant alter any table to b 在这就涉及到了一个问题 当做truncate操作的时候,必须赋予drop any table才可以删除。 drop truncate自己用户下的表,不需要任何权限。 dro 阅读详情

相关推荐

直播间人气协议算法:从批量操作到数据接口的自动化实现

本文深入解析直播间人气协议算法的实现原理与技术细节,涵盖批量账号管理、IP代理方案、用户行为模拟算法及平台数据接口调用策略。通过逆向工程分析通信协议,结合算法设计实现自动化流量提升,同时探讨风控规避与系统性能优化方案,为开发者提供合规的技术实践参考。

weixin_30505225的博客 517

数据库中drop、truncate、delete三种删除的区别

一:用法和区别 drop:drop table 表名 删除内容和定义,并释放空间。执行drop语句,将使此表的结构一起删除。 truncate (清空表中的数据):truncate table 表名 删除内容、释放空间但不删除定义(也就是保留表的数据结构)。与drop不同的是,只是清空表数据而已。 truncate不能删除行数据,虽然只删除数据,但是比delete彻底,它只删除表数据。 delete:delete from 表名 (where 列名 = 值) ...

han_cui的博客 6527

LS-Dyna模态分析实战:从模型构建到结果解读的全流程指南

本文提供了一份详尽的LS-Dyna模态分析实战指南。文章系统讲解了如何利用LS-Dyna内置的隐式求解器进行特征值求解,从模型构建、几何清理、材料与连接设置,到核心的边界条件与隐式求解控制(如*CONTROL_IMPLICIT_EIGENVALUE),最后完成计算并解读频率与振型结果。旨在帮助工程师在熟悉的环境中高效完成结构振动特性分析,为后续动态响应分析奠定基础。

info6的博客 263

drop、truncate、delete的区别

1、drop、truncate、delete它们的用法是不同的 drop(丢弃数据):drop table 表名,直接将表都删除掉,在删除表的时候使用。 truncate (清空数据) :truncate table 表名,只删除表中的数据,再插入数据的时候自增长id又从1开始,在清空表中数据的时候使用。 delete(删除数据) :delete from 表名 where 列名=...

qq_41544550的博客 1万+

三电平逆变器LC滤波设计避坑指南:从SVPWM谐波到Simulink仿真验证

本文详细解析了三电平逆变器LC滤波设计中的关键问题,从SVPWM谐波特性到Simulink仿真验证,提供了800V/10kW系统的参数计算方法和优化技巧。通过实际案例和仿真配置示例,帮助工程师避免常见设计误区,提升电能质量和系统稳定性。

weixin_29261711的博客 173

张量积曲面:数学原理与Python实现

Suv∑i0m∑j0nPij⋅Bipu⋅BjqvSuvi0∑m​j0∑n​Pij​⋅Bip​u⋅Bjq​v其中PijP_{i,j}Pij​是控制点网格,BipuB_i^p(u)Bip​u和BjqvB_j^q(v)Bjq​v是基函数,分别沿uuu和vvv方向定义。

T20151470的博客 1155

drop、truncate和delete的区别(超详细)

drop、truncate和delete的区别 一、delete 1、delete是DML,执行delete操作时(删除一行数据),可根据条件删除表中满足条件的数据,如果不指定where子句,那么删除表中所有记录,并且同时将删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作 2、 需要...

HY845638534的博客 5936

从平面到立体:一张图看懂MOSFET、FinFET到GAAFET的演变史(附结构对比图)

本文深入解析了半导体晶体管从平面MOSFET到三维FinFET,再到全环绕栅极GAAFET的技术演进历程。通过结构对比图和物理原理分析,揭示了每一次创新如何解决短沟道效应等关键挑战,推动芯片性能提升。特别关注GAAFET作为最新技术突破的架构特点和性能优势。

weixin_30892037的博客 695

drop、truncate和delete的区别

drop、truncate和delete的区别 (1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。    TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。 (2)表和索引所占空间。  

青青的博客 12万+

win11重装系统简易教程-小白也可以上手!

本文介绍一下win11系统重装的各个步骤,也作为记录供自己后面查看。附上我之前参考的一位知乎大神写的重装win10系统文章的地址本文用到的工具全部是,不需要下载第三方镜像文件(不是说这个不好,只是第三方的软件或镜像文件网上非常多,琳琅满目,小白需要筛选甄别,直接用官方的就比较省心,大神请自便~)

Sddqa的博客 1万+

Vue项目实战:海康WebControl插件从安装到预览功能全流程(附RSA加密避坑指南)

本文详细介绍了在Vue项目中集成海康威视WebControl插件的全流程,从环境准备、插件部署到核心功能实现。重点解析了使用JS_RequestInterface获取RSA公钥并进行加密参数初始化的关键步骤与常见避坑指南,帮助开发者高效完成监控视频预览功能的开发与调试。

linux6sysadmin的博客 1227

truncate、delete和drop的6大区别!

因此,如果你需要删除整张表的数据并且不需要保留表结构,TRUNCATE是更好的选择。如果你只想删除部分数据,或需要保留表结构,DELETE可能是更好的选择。执行速度不同: TRUNCATE比DELETE执行速度更快,因为它是通过删除整个表而不是逐行删除来实现的。是否保留数据: TRUNCATE删除表中所有数据,但保留表的结构,而DELETE删除表中的数据并不会保留表的结构。而DELETE可以被回滚。作用对象不同: TRUNCATE只作用于表级别,而DELETE可以作用于表、视图和子查询等多个层次。

qq_45196580的博客 1057

永磁同步电机矢量控制——电流内环前馈解耦策略

在采用永磁同步电机矢量控制时,ud和uq的指令值存在耦合项。需要对其进行解耦,目前,常用的解耦设计方法有前馈解耦、偏差解耦以及内模控制,本文主要分享电流内环前馈解耦控制策略。

a12312341ll的博客 8692

SQL之delete、truncate和drop区别

相同点:1、都有删除表的功能;不同点:1、delete、truncate仅仅删除表里面的数据;drop会把表的结构也删除掉2、delete是DML语句,操作完了,还可以回滚;truncate和drop是DDL语句,删除之后立即生效,不能回滚;3、在执行效益上drop>truncate>delete;扩展知识:为了形成数据库语言,DDL和DML都是必须的。DDL和DML之间的主要区别在于:DDL有助于更改数据库的结构,而DML有助于管理数据库中的数据。

m0_74823317的博客 1435

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

drop,delete与truncate的区别

drop直接删掉表 truncate删除表中数据,再插入时自增长id又从1开始 delete删除表中数据,可以加where字句。 (1) DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不...

ovejur的专栏 2万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

DROP、TRUNCATE 和 DELETE 命令的区别

DROP 命令用于删除数据库中的对象,包括表、视图、索引、数据库等。使用 DROP 命令删除对象时,该对象及其所有数据将被永久删除,且无法恢复。TRUNCATE 命令用于快速删除表中的所有数据,但保留表结构和元数据。与 DELETE 命令不同,TRUNCATE 不会逐行删除数据,而是直接释放表所占用的数据页。DELETE 命令用于删除表中的数据,可以根据条件删除指定的行。DELETE 命令是一个数据操作语言(DML)语句,删除的数据可以通过 ROLLBACK 恢复。

网络技术联盟站 2212

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

drop、delete 与 truncate 的区别?

在 SQL 中,DROPDELETE和TRUNCATE都涉及数据删除,但。

csdn_tom_168的博客 919

delete,truncate,drop区别

本文导读:删除表中的数据的方法有delete,truncate, 其中TRUNCATE TABLE用于删除表中的所有行,而不记录单个行删除操作。TRUNCATE TABLE 与没有 WHERE 子句的 DELETE 语句类似;但是,TRUNCATE TABLE 速度更快,使用的系统资源和事务日志资源更少。下面介绍SQL中Truncate的用法 当你不再需要该表时, 用 drop;当你仍要保...

Never__give__up的博客 304

mysql-DELETE、DROP 和 TRUNCATE区别

特性/命令DELETEDROPTRUNCATE作用范围删除符合条件的行删除整个数据库对象(如表)删除表中的所有数据但保留表结构是否影响表结构否是否能否使用WHERE条件是否否性能较慢,特别是对于大表快非常快可否回滚如果事务支持则可以不可以大多数情况下不可以日志记录记录每一行的删除不适用记录较少。

以爱护甲,爱满枫林。 1233

DROP/DELETE/TRUNCATE 的区别

摘要:DROP、DELETE 和 TRUNCATE 是三种不同的数据删除操作。DROP 用于删除整个数据库对象(如表结构及数据),不可回滚;DELETE 用于删除表中部分或全部数据(保留表结构),可回滚但速度较慢;TRUNCATE 快速清空表数据(保留结构),不可回滚且不支持条件删除。主要区别体现在操作对象、删除范围、可回滚性和执行速度上。DROP 和 TRUNCATE 属于 DDL 语句,DELETE 是 DML 语句。

weixin_42449750的博客 983

drop、truncate、delete三者删除的区别

文章目录一、用法1)delete 删除行或者清空表;2)runcate (清空表中的数据)3) drop二、异同三、总结 一、用法 1)delete 删除行或者清空表; 语法: delete from 表名 (where 列名 = 值) delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表空间要足够大,需要手动提交(commit)操作才能生效,可以通过rollback撤消操

2425

delete和truncate的区别,和drop又有什么区别?

数据库删除操作差异:DELETE是DML操作,可回滚并支持WHERE条件筛选,但速度最慢;TRUNCATE是DDL操作,快速清空表数据且不可回滚,会重置自增列;DROP也是DDL操作,直接删除整个表结构及数据,速度最快但不可恢复。三者执行速度依次递增,风险也随之增大,使用需谨慎。尤其注意DROP操作可能导致'删库跑路'的严重后果,重大操作前务必备份数据。

ccyOracle的博客 855

Mysql中Drop,Truncate,Delete的区别

1、delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表空间要足够大,需要手动提交(commit)操作才能生效,可以通过rollback撤消操作。(6)truncate与不带where的delete :只删除数据,而不删除表的结构(定义)drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index);新行标识所用的计数值重置为该列的种子。

Machine Learning with Tutors 1786
上一篇: 主键、超键、候选键、外键的概念
下一篇: 随机抽样、分层抽样、整群抽样、系统抽样的区别
Yaroo
博客等级 码龄11年 88粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值