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

2024-04-03 01:44

本文主要是介绍【保姆级讲解下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

这篇关于【保姆级讲解下MySQL中的drop、truncate和delete的区别】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/871608

相关文章

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

SQL BETWEEN 的常见用法小结

《SQLBETWEEN的常见用法小结》BETWEEN操作符是SQL中非常有用的工具,它允许你快速选取某个范围内的值,本文给大家介绍SQLBETWEEN的常见用法,感兴趣的朋友一起看看吧... 在SQL中,BETWEEN是一个操作符,用于选取介于两个值之间的数据。它包含这两个边界值。BETWEEN操作符常用

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

MySql match against工具详细用法

《MySqlmatchagainst工具详细用法》在MySQL中,MATCH……AGAINST是全文索引(Full-Textindex)的查询语法,它允许你对文本进行高效的全文搜素,支持自然语言搜... 目录一、全文索引的基本概念二、创建全文索引三、自然语言搜索四、布尔搜索五、相关性排序六、全文索引的限制七

数据库面试必备之MySQL中的乐观锁与悲观锁

《数据库面试必备之MySQL中的乐观锁与悲观锁》:本文主要介绍数据库面试必备之MySQL中乐观锁与悲观锁的相关资料,乐观锁适用于读多写少的场景,通过版本号检查避免冲突,而悲观锁适用于写多读少且对数... 目录一、引言二、乐观锁(一)原理(二)应用场景(三)示例代码三、悲观锁(一)原理(二)应用场景(三)示例

go 指针接收者和值接收者的区别小结

《go指针接收者和值接收者的区别小结》在Go语言中,值接收者和指针接收者是方法定义中的两种接收者类型,本文主要介绍了go指针接收者和值接收者的区别小结,文中通过示例代码介绍的非常详细,需要的朋友们下... 目录go 指针接收者和值接收者的区别易错点辨析go 指针接收者和值接收者的区别指针接收者和值接收者的

售价599元起! 华为路由器X1/Pro发布 配置与区别一览

《售价599元起!华为路由器X1/Pro发布配置与区别一览》华为路由器X1/Pro发布,有朋友留言问华为路由X1和X1Pro怎么选择,关于这个问题,本期图文将对这二款路由器做了期参数对比,大家看... 华为路由 X1 系列已经正式发布并开启预售,将在 4 月 25 日 10:08 正式开售,两款产品分别为华

SQL表间关联查询实例详解

《SQL表间关联查询实例详解》本文主要讲解SQL语句中常用的表间关联查询方式,包括:左连接(leftjoin)、右连接(rightjoin)、全连接(fulljoin)、内连接(innerjoin)、... 目录简介样例准备左外连接右外连接全外连接内连接交叉连接自然连接简介本文主要讲解SQL语句中常用的表

SQL server配置管理器找不到如何打开它

《SQLserver配置管理器找不到如何打开它》最近遇到了SQLserver配置管理器打不开的问题,尝试在开始菜单栏搜SQLServerManager无果,于是将自己找到的方法总结分享给大家,对SQ... 目录方法一:桌面图标进入方法二:运行窗口进入方法三:查找文件路径方法四:检查 SQL Server 安

MySQL 中的 LIMIT 语句及基本用法

《MySQL中的LIMIT语句及基本用法》LIMIT语句用于限制查询返回的行数,常用于分页查询或取部分数据,提高查询效率,:本文主要介绍MySQL中的LIMIT语句,需要的朋友可以参考下... 目录mysql 中的 LIMIT 语句1. LIMIT 语法2. LIMIT 基本用法(1) 获取前 N 行数据(