MySQL 删除表的三种方式的区别

2023-11-01

MySQL 删除表的三种方式
1、drop table

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

例如删除 user 表:

drop table user;
2、truncate table

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

例如删除 user 表:

truncate table user;
3、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。

转载:https://www.cnblogs.com/frankyou/p/14395004.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL 删除表的三种方式的区别 的相关文章

  • LEFT JOIN 返回与 INNER JOIN 相同的结果

    我有一张桌子 磨砂膏 里面有 1600 个独特的物品 第二张桌子有100万以上 我运行 INNER JOIN 并获得 65 个匹配项 SELECT a BW Parent Number a Vendor Name b Parent Supp
  • 如何解决 MySQL Workbench 上的这些行错误?

    正如您所看到的 我的代码中没有语法错误或类似的错误 你们能帮我吗 我想这只是错误标记机制中的一个小错误 尝试编辑代码或关闭此编辑器并打开一个新编辑器 如果您有重现此问题的步骤列表 您甚至可以创建一个错误报告 http bugs mysql
  • 提高mysql导入速度[关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我有一个很大的数据库22GB 我曾经用过进行备份mysqldumpgzip 格式的命令 当我提取 gz 文件时 它会生成 sql文件的
  • MySQL 性能 DELETE 或 UPDATE?

    我有一个超过 10 7 行的 MyISAM 表 向其中添加数据时 我必须在最后更新 10 行 删除它们然后插入新行更快 还是更新这些行更快 应更新的数据不是索引的一部分 索引 数据碎片怎么样 UPDATE到目前为止要快得多 当你UPDATE
  • mysql查询先慢后快

    我有 2 个 myISAM 表 分别称为 tests 和 completed tests 一个有 170 个条目 另一个有 118k 条目 当我运行此查询时 SELECT ct archive ct status ct score ct u
  • RESTful Web 服务:java.lang.NullPointerException service.AbstractFacade.findAll

    我使用 NetBeans 7 的 来自数据库的 RESTful Web 服务 向导创建了一个简单的 XML Web 服务 此时 我想从关联的 mySQL 数据库发布用户列表 当我尝试通过其 URL http localhost 8080 d
  • MySQL 中有“connect by”替代方案吗?

    如果我使用 Oracle 有connect by可用于创建分层查询的关键字 目前我正在一个项目中使用MySQL 我想知道是否有替代方案connect by在 MySQL 中 我尝试过谷歌 但到目前为止还没有结果 我想要实现的是通过一个查询从
  • PHP 5.4 PDO 无法使用旧的不安全身份验证连接到 MySQL 4.1+

    我知道有很多类似的问题 事实上我已经阅读了所有 9 个问题 但是 他们都没有解决我的问题 我有一个共享托管包 最低限度 我的包中包含域名和托管 MySQL 服务器的单独 IP 地址 为了开发 我正在使用http localhost 与 PH
  • 找时间通过 PHP 执行 MySQL 查询

    我在互联网上看到过这个问题 here http www phpbuilder com board showthread php t 2100256 and here http answers yahoo com question index
  • 如何使用 PHP 通过 JSON 发送 HTML 元素?

    以下功能 try query this gt pdo gt prepare SELECT FROM bookings WHERE TourID AND dTourDate and Status NOT LIKE Cancelled quer
  • 哈希密码字段使用什么数据类型以及长度?

    我不确定密码哈希是如何工作的 稍后将实现 但现在需要创建数据库模式 我正在考虑将密码限制为 4 20 个字符 但据我了解 加密后哈希字符串的长度将有所不同 那么 如何将这些密码存储在数据库中呢 更新 仅使用哈希函数不足以存储密码 你应该阅读
  • 如何使用外连接和分组依据在查询中包含 NULL 值

    我有两个表 其中包含以下示例数据 Table 1 item name item id item desc 1 apple 2 orange 3 banana 4 grape 5 mango Table 2 user items user i
  • pyodbc 无法正确处理 unicode 数据

    我确实使用 pyodbc 成功连接了 MySQL 数据库 并且它可以很好地处理 ascii 编码的数据 但是当我打印使用 unicode utf8 编码的数据时 它引发了错误 UnicodeEncodeError ascii codec c
  • 通过字符串操作预防 PHP SQL 注入[重复]

    这个问题在这里已经有答案了 可能的重复 PHP 中防止 SQL 注入的最佳方法 https stackoverflow com questions 60174 best way to prevent sql injection in php
  • MySQL解释更新

    作为我大学复习的一部分 我试图回答以下问题 至少在表的一个属性上创建索引 employees 数据库 您可以在其中使用 MySQL EXPLAIN 工具 清楚地显示好处 在条款或检索方面 和负面 在 更新条款 创建相关索引的信息 对于第一部
  • Mysql关于重复键更新+子查询

    使用这个问题的答案 需要 MySQL INSERT SELECT 查询具有数百万条记录的表 https stackoverflow com questions 662877 need mysql insert select query fo
  • 将我的 Laravel 连接到外部数据库

    如何将 Laravel 连接到外部数据库 示例 我的本地计算机上有一个 Laravel 它在 xampp 上运行 我希望它连接到云服务器数据库 打开 env文件并编辑它 只需设置正确的外部数据库凭据 DB CONNECTION mysql
  • 如何将变量设置为触发器 MYSQL 内存储过程的结果?

    我这里有一个小问题 我正在为我的数据库工作创建一个触发器 但我不知道如何在触发器内使用存储过程 我想将过程的结果保存在变量中 然后使用稍后在 IF 比较器上变量 这是我的代码 DELIMITER CREATE TRIGGER insert
  • MySQL - 从另一个表插入与常量合并的数据

    我有一个包含一些数据的临时表 products temp 并且我有另一个需要将数据插入其中的表 产品 我需要在新记录上手动设置一些常量 例如vendor id 1等 是否可以在一次请求中插入临时表数据和常量 临时产品 product nam
  • Yii2:无法将列值更新+1

    创建新记录时 我需要将列值更新 1 public function actionCreate model new CreateBookings if model gt load Yii app gt request gt post Yii

随机推荐

  • H5支付例子

    在这里插入图片描述 https img blog csdnimg cn 20200912113603136 png x oss process image watermark type ZmFuZ3poZW5naGVpdGk shadow
  • scrapy_splash简单爬取淘宝页面信息

    首先打开淘宝页面 搜索手机 https uland taobao com sem tbsearch refpid mm 26632258 3504122 32538762 clk1 04511dd93dde330d86022e9ce3a3d
  • 第二章 - 数据类型与运算

    第二章 数据类型与运算 2 1 数据类型 使用编程语言进行编程时 需要用到各种变量来存储各种信息 变量保留的是它所存储的值的内存位置 这意味着 当您创建一个变量时 就会在内存中保留一些空间 需要存储各种数据类型 比如字符型 宽字符型 整型
  • 【无标题】数字三角形

    题目描述 打印数字三角形 从1开始输出 第i行输出i个数 每个数字按4个位置输出 注 c语言中 4d可以输出一个数 占据四个位置 右对齐 输入描述 输入一行 包含一个整数n 1 lt n lt 1000 输出描述 输出n行 第i行 有i个数
  • 【Linux】gdb调试器的使用

    文章目录 一 gdb简介 二 调试前的准备 1 生成调试文件 2 启动 gdb 三 gdb 使用方法 1 查看源代码 2 设置 查看断点 多种方式设置断点 方法一 方法二 方法三 3 run 4 删除断点 断点无效 5 逐过程调试 以函数为
  • mac 远程ftp服务器文件共享,Mac系统Macbook以FTP方式与局域网中的PC共享文件

    很多人都知道在Windows 下 系统会有自带的FTP功能 只不过我们在使用的时候 进行了一定的配置 而在Mac OS 下 一般的情况下 很多同学都是通过第三方的FTP软件来搭建FTP服务器 或者说进行文件共享的 可是在今天 我们可以通过M
  • 「Photoshop2021入门教程」调整图片到不同的长宽比

    不影响画质的前提下如何调整图片的长宽比例呢 小编为大家带来Photoshop2021新手系列教程 今天我们来学习调整图片到不同的长宽比 PS打开需要调整的图片 3639 5000PX 如何调整成3000 3000PX的图片呢 菜单栏选择图像
  • 文字滚动效果,歌词滚动

    TOC 文字滚动效果 歌词滚动 在这里插入代码片
  • 基于MapReduce的(用户、物品、内容)的协同过滤推荐算法

    1 基于用户的协同过滤推荐算法 利用相似度矩阵 评分矩阵得到推荐列表 已经推荐过的置零 2 基于物品的协同过滤推荐算法 3 基于内容的推荐 算法思想 给用户推荐和他们之前喜欢的物品在内容上相似的物品 首先在物品特征建模 转载于 https
  • linux硬盘安装mint教程,硬盘安装Linux Mint KDE 10

    想要为MBP装一个KDE桌面 结果选择了Linux Mint KDE 10 Mint KDE 10只提供了DVD版本 并没有提供CD版本 所以700M的CD RW也就无用武之地了 我只好另辟蹊径了 其实方法很简单 硬盘安装呗 经过一番折腾
  • Python获取当前时间(time模块)

    Python获取当前时间 time模块 1 time time 返回当前时间戳 值为按秒计算的浮点数 表示从1970年1月1日0点0分开始 到当前时间 一共经历了多少秒 import time time time 1566028075 37
  • Linux ssh下实现免密码登录

    Linux ssh下实现免密码登录 在日常的工作中我们不免要在各种个linux服务器之前来回切换 即使现在的shell工具支持多选项卡控制多个shell那来回切换也是很麻烦的一件事 现在我来弄一个服务器间的相互免密操作 1 Linux下生成
  • 深入浅出hibernate之PO,VO,load,get

    今天老师重新详细讲解了hibernate 里的POVO 最开始理解的POVO 感觉就是通过SAVE 方法 将OBJ 持久化到数据库 如果要UPDATE 只要将oBJ 里属性SET一个新值 然后执行下UPDATE就好 这是种错误的概念 因为那
  • spring boot 过滤器、拦截器的区别与使用

    拦截器与过滤器的区别 1 过滤器和拦截器触发时机不一样 过滤器是在请求进入容器后 但请求进入servlet之前进行预处理的 请求结束返回也是 是在servlet处理完后 返回给前端之前 如下图 2 拦截器可以获取IOC容器中的各个bean
  • sed和awk常用方法

    sed和awk是比较基础的类Unix系统中批量处理文本的好东西 sed负责做行的编辑 awk负责做列编辑 这里将说一点这方面的知识 需要明白的一点就是他们的处理都是按照行来做的处理 sed 命令格式 sed options command
  • Python实现RSA加密算法

    Python实现RSA加密算法 RSA是一种非对称密码学算法 广泛应用于信息安全领域 在这篇文章中 我们将使用Python编写一个RSA加密算法 算法流程 选择两个大质数p和q 计算n p q 计算n的欧拉函数phi n p 1 q 1 选
  • 如何用51单片机实现pwm调光+呼吸灯(超详细+源码)

    洗剪吹一条龙服务 PWM信号产生电路设计 综合设计背景及意义 在工控行业 PWM信号可以用来调节电机转速 调节变频器以及BLDC电机驱动等 在LED照明行业 可以通过PWM来控制LED灯的亮暗变化 还可以通过PWM信号来控制无源蜂鸣器发出简
  • 计算机指法标准,计算机键盘指法的正确练习步骤

    键盘指法练习图电脑键盘指法练习学习目的 1 正确指法 2 熟悉字母位置 计算机键盘指法学习步骤 第一步是将手指放在键盘上 如下图所示 将手指放在八个基本键上 并将两个手指放在空格键上 第二步 练习击键 例如 要敲击D键 方法是 1 将左手抬
  • 长度12的数组,要求对数据分为3组,每组数据对应位置的数字为前几位的和,并返回12位数组...

    例如 1 2 3 4 5 6 7 8 9 10 11 12 要求返回 1 3 6 10 5 11 18 26 9 19 30 42 var arr 1 2 3 4 5 6 7 8 9 10 11 12 function add arr1 n
  • MySQL 删除表的三种方式的区别

    MySQL 删除表的三种方式 1 drop table drop 是直接删除表信息 速度最快 但是无法找回数据 例如删除 user 表 drop table user 2 truncate table truncate 是删除表数据 不删除