MySQL删除表数据与MySQL清空表命令的3种方法浅析

 更新时间:2022年08月17日 09:38:56   作者:努力的小阿冬  
删除现有MySQL表非常容易,但是删除任何现有的表时要非常小心,因为删除表后丢失的数据将无法恢复,下面这篇文章主要给大家介绍了关于MySQL删除表数据与MySQL清空表命令的3种方法的相关资料,需要的朋友可以参考下

一、MySQL清空表数据命令:truncate

SQL语法:

truncate table 表名

注意:

  • 不能与where一起使用。
  • truncate删除数据后是不可以rollback的。
  • truncate删除数据后会重置Identity(标识列、自增字段),相当于自增列会被置为初始值,又重新从1开始记录,而不是接着原来的ID数。
  • truncate删除数据后不写服务器log,整体删除速度快。
  • truncate删除数据后不激活trigger(触发器)。

二、MySQL删除表命令:drop

SQL语法:

drop table 表名;

或者是

drop table if exists 表名;

注意:

truncate只会清除表数据,drop不光清除表数据还要删除表结构。

三、MySQL清空数据表内容的语法:delete

SQL命令:

delete from 表名 where id='1';

delete from 表名;

注意:

delete含义:你要删除哪张表的数据 ?你要删掉哪些行 ?delete可以删除一行,也可以删除多行;如果不加where条件,则是删除表所有的数据,这是很危险的!不建议这样做!

总结:

1、当你不再需要该表时, 用 drop;

2、当你仍要保留该表,但要删除所有数据表记录时, 用 truncate;

3、当你要删除部分记录或者有可能会后悔的话, 用 delete。

补充:MySQL删除表操作delete、truncate、drop的区别

1.表和索引所占空间:

  当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小;

  DELETE操作不会减少表或索引所占用的空间;

  DROP语句将表所占用的空间全释放掉。

2.应用范围:

  TRUNCATE 只能对table;

  DELETE可以是table和view。

3.执行速度:

  drop > truncate > delete

4.delete from删空表后,会保留一个空的页,truncate在表中不会留有任何页。

5.DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。

TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。

6.当使用行锁执行 DELETE 语句时,将锁定表中各行以便删除。truncate始终锁定表和页,而不是锁定各行。

7.如果有identity产生的自增id列,delete from后仍然从上次的数开始增加,即种子不变;使用truncate删除之后,种子会恢复到初始值。

总结

到此这篇关于MySQL删除表数据与MySQL清空表命令的文章就介绍到这了,更多相关MySQL删除表数据 清空表命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mysql中limit查询踩坑实战记录

    mysql中limit查询踩坑实战记录

    在MySQL中我们常常用order by来进行排序,使用limit来进行分页,下面这篇文章主要给大家介绍了关于mysql中limit查询踩坑的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • MySQL子查询的空值问题解决

    MySQL子查询的空值问题解决

    本文主要介绍了MySQL子查询的空值问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • MYSQL 一个巧用字符函数做数据筛选的题

    MYSQL 一个巧用字符函数做数据筛选的题

    这篇文章主要介绍了MYSQL 一个巧用字符函数做数据筛选的题,需要的朋友可以参考下
    2017-05-05
  • mysql把查询结果按逗号分割的实现示例

    mysql把查询结果按逗号分割的实现示例

    使用MySQL数据库的GROUP_CONCAT函数,可以将查询结果按逗号或其他指定分隔符连接成字符串,这种方法适用于需要汇总数据并以字符串形式展示的场景,本文介绍了GROUP_CONCAT函数的基本用法和注意事项,感兴趣的可以了解一下
    2024-09-09
  • Mysql全文搜索对模糊查询的性能提升测试方式

    Mysql全文搜索对模糊查询的性能提升测试方式

    这篇文章主要介绍了Mysql全文搜索对模糊查询的性能提升测试方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 深入SQLite基本操作的总结详解

    深入SQLite基本操作的总结详解

    本篇文章是对SQLite的基本操作进行了总结和介绍。需要的朋友参考下
    2013-05-05
  • Mysql中常用的几种join连接方式总结

    Mysql中常用的几种join连接方式总结

    join语句是面试中经常会让你现场写出来的语句,下面这篇文章主要给大家介绍了关于Mysql中常用的几种join连接方式,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • Mysql 索引 BTree 与 B+Tree 的区别(面试)

    Mysql 索引 BTree 与 B+Tree 的区别(面试)

    这篇文章主要介绍了Mysql索引BTree与B+Tree的区别,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • 详解MySQL8的新特性ROLE

    详解MySQL8的新特性ROLE

    这篇文章主要介绍了详解MySQL8的新特性ROLE的相关资料,帮助大家更好的理解和使用MySQL8,感兴趣的朋友可以了解下
    2020-11-11
  • mysql如何将一个列按逗号分割为多列

    mysql如何将一个列按逗号分割为多列

    在MySQL中,将一个列按逗号分割为多列可以通过使用SUBSTRING_INDEX()函数和CROSS JOIN操作实现,本文提供了一个实用的方法,通过创建数字序列和临时表来拆分tags列并计数每个标签的出现次数,适用于处理有限数量的标签值
    2024-09-09

最新评论