sql语句删除数据库表的几种方式及区别

sql语句删除数据库表的几种方式及区别

delete

  • 只删除表中数据,不删除表结构,可以与where连用,删除特定行;
  • 记录日志
  • 可以rollback恢复数据
  • 不删除索引
  • 返回删除的记录数

eg: delete from user where id=1;

truncate

相当于不加where的delete

  • 删除表中所有数据,但不能与where一起使用;
  • 保留表结构
  • 不记录日志
  • 不可以恢复数据
  • 重建索引
  • 速度比delete快,使用的系统和事务日志资源少
  • 返回0(成功)或-1(失败)

eg: truncate table user;

drop

直接将数据以及表结构删除,无法找回。
eg: drop table user;

使用场景

删除程度由强到弱:
drop > truncate > delete

  • 想删除部分数据行用delete,注意带上where子句,回滚段要足够大;
  • 想删除表,用drop
  • 想保留表而将所有数据删除,如果和事务无关,用truncate;如果和事务有关,或者想触发trigger,用delete。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值