MySQL删除表的三种方式(小结)

 更新时间:2020年09月24日 10:41:19   作者:ThinkWon  
这篇文章主要介绍了MySQL删除表的三种方式(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

drop table

drop 是直接删除表信息,速度最快,但是无法找回数据

例如删除 user 表:

drop table user;

truncate (table)

truncate 是删除表数据,不删除表的结构,速度排第二,但不能与where一起使用

例如删除 user 表:

truncate table user;

delete from

delete 是删除表中的数据,不删除表结构,速度最慢,但可以与where连用,可以删除指定的行

例如删除user表的所有数据

delete from user;

删除user表的指定记录

delete from user where user_id = 1;

三种方式的区别

相同点

  • truncate和不带where子句的delete,drop都会删除表内的数据;
  • drop,truncate都是DDL语句(数据定义语言),执行后会自动提交;

不同点

  • 语句类型:delete语句是数据库操作语言(DML),truncate,drop是数据库定义语言(DDL);
  • 效率:一般来说 drop > truncate> delete;
  • 是否删除表结构:truncate和delete 只删除数据不删除表结构,truncate 删除后将重建索引(新插入数据后id从0开始记起),而 delete不会删除索引 (新插入的数据将在删除数据的索引后继续增加),drop语句将删除表的结构包括依赖的约束,触发器,索引等;
  • 安全性:drop和truncate删除时不记录MySQL日志,不能回滚,delete删除会记录MySQL日志,可以回滚;
  • 返回值:delete 操作后返回删除的记录数,而 truncate 返回的是0或者-1(成功则返回0,失败返回-1);

小知识

delete 与 delete from 区别

如果只针对一张表进行删除,则效果一样;如果需要联合其他表,则需要使用from

delete tb1 from tb1 m where id in (select id from tb2);

用法总结

  • 希望删除表结构时,用 drop;
  • 希望保留表结构,但要删除所有记录时, 用 truncate;
  • 希望保留表结构,但要删除部分记录时, 用 delete。

到此这篇关于MySQL删除表的三种方式(小结)的文章就介绍到这了,更多相关MySQL 删除表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mysql的日期和时间函数大全

    mysql的日期和时间函数大全

    mysql的日期和时间函数 这里是一个使用日期函数的例子。下面的查询选择所有 date_col 值在最后 30 天内的记录。
    2008-04-04
  • Kubernetes中实现 MySQL 读写分离的详细步骤

    Kubernetes中实现 MySQL 读写分离的详细步骤

    Kubernetes中实现MySQL的读写分离通过主从复制架构,利用Kubernetes部署MySQL主节点和从节点,并通过Service实现读写分离,提高数据库性能和可维护性
    2024-11-11
  • SQL Server 2005 安装遇到的错误提示和解决方法

    SQL Server 2005 安装遇到的错误提示和解决方法

    在安装SQL Server 2005时有时会出现意想不到的问题,如IIS,性能计数器,OWC11,无法配置外围应用的问题,下面笔者分享一下在安装SQL Server 2005时常见问题解决方法
    2014-01-01
  • MySQL数据库索引原理及优化策略

    MySQL数据库索引原理及优化策略

    MySQL数据库索引是一种数据结构,用于提高数据查询的效率,加快数据检索的速度。索引基于树结构实现,可以通过B+树等算法来优化索引效率。MySQL中常见的索引类型包括主键索引、唯一索引、普通索引、全文索引等
    2023-04-04
  • MySQL 5.6 中TIMESTAMP with implicit DEFAULT value is deprecated错误

    MySQL 5.6 中TIMESTAMP with implicit DEFAULT value is deprecat

    安装mysql的时候出现TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details),可以参考下面的方法解决
    2015-08-08
  • 详解Mysql中explain执行计划信息中字段

    详解Mysql中explain执行计划信息中字段

    Extra是EXPLAIN输出中另外一个很重要的列,该列显示MySQL在查询过程中的一些详细信息,MySQL查询优化器执行查询的过程中对查询计划的重要补充信息,这篇文章主要介绍了Mysql中explain执行计划信息中字段详解,需要的朋友可以参考下
    2023-08-08
  • MySQL replace into 语句浅析(一)

    MySQL replace into 语句浅析(一)

    这篇文章主要介绍了MySQL replace into 语句浅析(一),本文讲解了replace into的原理、使用方法及使用的场景和使用示例,需要的朋友可以参考下
    2015-05-05
  • MySQL之同表一个字段如何赋值给另一个字段

    MySQL之同表一个字段如何赋值给另一个字段

    这篇文章主要介绍了MySQL之同表一个字段如何赋值给另一个字段问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 数据库面试必备之MySQL中的乐观锁与悲观锁

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

    这篇文章主要介绍了数据库面试必备之MySQL中乐观锁与悲观锁的相关资料,乐观锁适用于读多写少的场景,通过版本号检查避免冲突,而悲观锁适用于写多读少且对数据一致性要求极高的场景,通过加锁确保数据一致,需要的朋友可以参考下
    2025-04-04
  • Mysql  DATEDIFF函数用法总结示例详解

    Mysql  DATEDIFF函数用法总结示例详解

    MySQL DATEDIFF()函数是MySQL中常见的日期函数之一,它主要用于计算两个日期之间的差值,单位可以是天、周、月、季度和年,DATEDIFF函数用于返回两个日期的天数,这篇文章主要介绍了Mysql  DATEDIFF函数,包括语法格式和示例代码讲解,需要的朋友可以参考下
    2023-03-03

最新评论