MySQL删除表的三种方式[通俗易懂]

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删除表的三种方式[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111747.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SQLyog安装配置详细过程[通俗易懂]

    SQLyog安装配置详细过程[通俗易懂]SQLyog安装配置详细过程一、小啊呜资源分享二、SQLyog安装配置过程叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧!

    2022年5月25日
    109
  • 在pycharm中安装opencv_pycharm opencv

    在pycharm中安装opencv_pycharm opencv打开pycharm下方的terminal终端在路径下直接输入pipinstallopencv-python稍等片刻既安装成功在这里查看项目安装的模块点击左上方文件-设置-项目-Protect-Interpreter看到我们已经安装了opencv-python与numpy模块…

    2022年8月27日
    3
  • webstorm激活码2021(JetBrains全家桶)

    (webstorm激活码2021)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月21日
    311
  • RPN网络

    RPN网络RPN思路:1、先通过conv层+pooling层+relu层,可以是vgg,得到featuremaps。2、在featuremaps上提取对应的图。在第一步基础上,先通过rpn生成regionproposals。通过softmax判断anchors(9个框),是foreground还是background,再通过boundingboxregression…

    2022年6月23日
    32
  • 微信朋友圈如何自动点赞

    微信朋友圈如何自动点赞我一直都不太喜欢给别人点赞,某一年(貌似是17年)微信出了一次朋友圈年报,那一整年我就点出去了几个赞,要知道当时我微信好友应该有300+。我觉得这是我不喜欢参与社交活动在网络世界的一种体现吧。不给别人点赞也没啥坏处,但你不评不赞,难免会让你和好友之间有些疏远,给别人点赞吧我又嫌麻烦,于是一直想着做个自动点赞的东西,今天基本实现了,虽然诸多不完整和诸多限制,但还是决定分享出来,主要是我觉得还挺好玩的。Autojs先来介绍下Autojs,看githubid貌似是个95后,真是年轻有为了。我这个朋…

    2022年5月4日
    111
  • 调用谷歌翻译接口_api如何调用

    调用谷歌翻译接口_api如何调用在平时使用谷歌翻译的过程中,经常会遇到需要批量翻译大量文本的情景,这种时候需要调用谷歌翻译的API首先可以使用python库googletranspipinstallgoogletrans#使用方法fromgoogletransimportTranslatortranslator=Translator(service_urls=[‘translate.google.cn’])sour…

    2022年10月22日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号