数据库删除数据的方式

数据库删除数据的方式主要是有三种: drop, delete, truncate
他们之间的区别在于:

1. 删除的内容不同

  • drop: 用于删除数据库, 数据表 以及 删除数据表中的字段
    • 删除数据库: drop database + 数据库名
    • 删除数据表: drop table + 数据表名
    • 删除数据表中的字段: use 数据库名 alter table 数据表名 drop column 字段名(列名)
  • delete: 删除数据表中的行(某一行 或 所有行)
    • 删除数据表中的行: delete from 数据表名 where 列名 = 值
  • truncate: 清空表数据, 但不删除这个表, 只是把里面存的数据内容清空掉

2. 语句类型不同

  • delete: 数据库操作语言(DML), 这个操作首先会放到 rollback segement(数据库中的一些存储空间, 用来临时保存在数据库中的数据发生改变时, 改变之前的值) 中, 当事务提交之后才会生效. 如果有相应的 trigger(触发器), 执行的时候将会被触发.
  • drop: 数据库定义语言(DDL), 操作立即生效, 原数据不会放到 rollback segement 中, 不会发生回滚, 操作也不触发 trigger.
  • truncate: 删除表中的所有行, 只删除数据, 其表结构以及约束条件等依然会保留. 操作立即生效, 不触发 trigger.

3. 删除速度不同

一般来说: drop > truncate > delete;

  • 6
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值