【保姆级讲解下MySQL中的drop、truncate和delete的区别】

在这里插入图片描述

🌈个人主页:程序员不想敲代码啊
🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家
👍点赞⭐评论⭐收藏
🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步!

MySQL中的drop、truncate和delete的区别

🤗在MySQL中,DROPTRUNCATEDELETE都是用来从数据库中删除数据的命令,但它们的功能和影响有所不同:

  1. 💫DELETE 命令:

    • 👉DELETE 用于删除表中的一条或多条记录。
    • 👉可以与 WHERE 子句结合使用,提供条件以选择需要删除的记录。
    • 👉DELETE 操作是可回滚的,即在事务中使用时,可以用 ROLLBACK 命令撤销操作。
    • 👉DELETE 操作会触发与之相关的任何 DELETE 触发器。
    • 👉由于 DELETE 操作每次删除一行,会记录每个删除的行,因此可能导致较慢的性能以及对事务日志的较大写入。
  2. 🎈TRUNCATE 命令:

    • 👉TRUNCATE 用于快速删除表中的所有记录,并且重置表的自增列计数器(如果有的话)。
    • 👉TRUNCATE 不能与 WHERE 子句一起使用,它会删除表中的所有行。
    • 👉TRUNCATE 操作通常是不可回滚的,因为它不记录单个行的删除动作(但在某些数据库系统中,如果在一个事务中执行,那么可能是可回滚的)。
    • 👉TRUNCATE 不触发 DELETE 触发器,因为它不是逐行处理。
    • 👉TRUNCATE 操作速度通常比 DELETE 快,因为它不记录每条记录的删除动作,并且它通常会回收所占用的磁盘空间。
  3. DROP 命令:

    • 👉DROP 用于删除整个表,包括表结构和其中的数据。
    • 👉DROP 操作会释放表所占用的全部空间,并且将表的定义信息从系统目录中移除。
    • 👉DROP 是一个不可回滚的操作,当执行该命令后,表被永久性删除,而且不记录删除的数据。
    • 👉无法在 DROP 操作中使用 WHERE 子句,因为它不是用于删除特定数据,而是用于删除整个表。
    • 👉删除表后,表中的任何索引、触发器等相关对象也会被删除。

在实际应用中,选择哪一种取决于你要实现的任务,如果需要删除特定的行,那么 DELETE 是合适的。如果想要清空一个表并且不关心其中的数据,那么 TRUNCATE 是一个更快的选项。如果你想要删除整个表以及其定义,那么应该使用 DROP

相关推荐

  1. MySQLdrop、truncatedelete区别

    2024-04-03 13:26:02       16 阅读
  2. 保姆讲解C语言运算符优先级】

    2024-04-03 13:26:02       18 阅读
  3. DELETE、TRUNCATE DROP 在MySQL区别及使用示例

    2024-04-03 13:26:02       20 阅读
  4. MySQL数据库Delete语句Truncate table 语句区别

    2024-04-03 13:26:02       12 阅读
  5. MySQLdrop、delete与trancate区别

    2024-04-03 13:26:02       25 阅读
  6. OracleTRUNCATE TABLE DELETE区别

    2024-04-03 13:26:02       9 阅读
  7. mysql】drop、delete与truncate区别

    2024-04-03 13:26:02       22 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-03 13:26:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-03 13:26:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-03 13:26:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-03 13:26:02       20 阅读

热门阅读

  1. SQL server 2008 不支持LAG函数

    2024-04-03 13:26:02       11 阅读
  2. thinkphp漏洞复现

    2024-04-03 13:26:02       11 阅读
  3. pytorch中的while for 循环 导出onnx的问题

    2024-04-03 13:26:02       16 阅读
  4. docker安装nodejs

    2024-04-03 13:26:02       11 阅读
  5. Vue父子组件通信代码示例

    2024-04-03 13:26:02       14 阅读
  6. CachedNetworkImage 在listview 返回页面闪烁问题

    2024-04-03 13:26:02       12 阅读
  7. @QtCore.pyqtSlot() 的用法

    2024-04-03 13:26:02       12 阅读
  8. 排队接水水水水水水

    2024-04-03 13:26:02       12 阅读
  9. kafka broker

    2024-04-03 13:26:02       9 阅读
  10. go root和go path

    2024-04-03 13:26:02       13 阅读
  11. 软件设计原则:组合/聚合复用原则

    2024-04-03 13:26:02       13 阅读