truncate(truncate table 表名)一篇读懂

Mark wiens

发布时间:2024-01-12

delete、truncate、drop的作用和区别

truncate(truncate table 表名)一篇读懂

 

导读:一、delete、truncate、drop的作用和区别1.1 delete1.2 truncate1.3 drop1.4 相同点1.5 区别

概述

数据准备:CREATETABLE`del_trun_drp_test` (`id`int(11) NOTNULL AUTO_INCREMENT comment主键,`name`varchar(250)

NOTNULLcomment姓名unique,`salary`decimal(10,2) NOTNULLDEFAULT0.00comment薪资, PRIMARY KEY (`id`)) ENGINE

=InnoDB AUTO_INCREMENT=3DEFAULTCHARSET=utf8;--插入数据insertinto del_trun_drp_test values(1,张三,5000),(2,李四

,10000),(3,王五,20000),(4,李六,100000);commit;

1.1 deletedelete属于DML语句,表示删除表中的数据delete语句执行删除过程中是朱行删除,并将删除作为事务记录日志以便回滚,delete既可以对表也可以对视图,可以按条件删除也可以全部删除。

语法:deletefrom 表名deletefrom 表名 where 条件‍演示:

1.2 dropdrop属于DDL,表示删除表,也可以用来删除数据库语法:droptable 表名dropdatabase 数据库名演示:

1.3 truncatetruncate属于DDL,表示删除表中所有数据truncate后只能跟表名,提供了快速、高效的删除表所有数据的方法,并且DDL不会产生回滚信息,执行完立即生效,不能回滚事务,truncate语句不会影响表的结构和约束等信息

语法:truncatetable 表名演示:

1.4 相同点truncate和没有where条件的delete、drop都会删除表数据drop和truncate都是DDL,执行完自动提交1.5 不同点执行速度 drop>truncate>delete

delete是DML,不会自动提交事务,drop和truncate则会truncate和delete都是删除数据,对表结构本身无影响,drop则删除整个表(包括结构和数据)truncate和drop是DDL,立即生效,不能回滚,delete可以回滚

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186