MySQL数据库的删除操作delete和truncate的区别

本文详细阐述了SQL语句中的DELETE与TRUNCATE的区别:DELETE属于数据操纵语言,支持WHERE子句实现部分记录删除,并记录日志;TRUNCATE属于数据定义语言,仅能清空整表且不记录日志,执行效率更高。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Create table student(

         Id INT(3) primarykey auto_increment,

         Name varchar(4)

);

 

Truncate table student;

 

(1)     delete语句是DML语data manipulation language它们是SELECTUPDATEINSERTDELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言),truncateDDL语句(datadefinition languageDDLDML要多,主要的命令有CREATEALTERDROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。);

(2)    delete语句后面可以跟where子句,通过where子句中的表达式,只删除满足条件的部分记录,而truncate只能用于删除表中的所有记录;

(3)    使用truncate语句删除表中的数据后,再次向表中添加记录时,字段的默认初始值从1开始,而使用delete删除表中的所有记录后,再次向表中添加记录,自动增加字段的值为删除时字段的最大值加1.

(4)    使用delete语句,没删除一天记录都会记录在日志中,而truncate语句不会记录在日志中,因此truncate语句的执行效率比delete语句高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值