【SQL】drop、delete 与 truncate 的区别

在数据库管理中,DROPDELETETRUNCATE 是用于删除数据或表的命令,但它们有不同的用途和效果。以下是它们的详细区别:

1. DROP

DROP 语句用于删除整个数据库对象(如表、视图、索引等)。一旦对象被删除,所有的数据、结构和权限都将丢失,无法恢复。

DROP TABLE table_name;
  • 用途: 删除整个表及其所有数据、结构和权限。
  • 回滚: 不可回滚。执行后,所有数据和表定义都永久删除。
  • 速度: 非常快,因为直接删除整个表。
  • 触发器: 不会触发触发器,因为它是删除表结构而不是数据。

2. DELETE

DELETE 语句用于删除表中的数据,可以带有 WHERE 子句以指定删除特定的记录。如果没有 WHERE 子句,将删除表中的所有记录,但表的结构保留。

DELETE FROM table_name WHERE condition;
  • 用途: 删除表中满足条件的行数据。
  • 回滚: 可以回滚,如果在事务中使用。
  • 速度: 较慢,因为每行都单独删除并记录日志。
  • 触发器: 会触发触发器,因为它逐行删除数据。

3. TRUNCATE

TRUNCATE 语句用于删除表中的所有数据,但保留表的结构。它重置表的自增字段,并且不记录单独的行删除日志。

TRUNCATE TABLE table_name;
  • 用途: 快速清空表中的所有数据,同时保留表结构。
  • 回滚: 在某些数据库系统中不可回滚(如 MySQL),在支持事务的数据库系统中(如 PostgreSQL)可以回滚。
  • 速度: 非常快,因为它批量删除数据并重置表。
  • 触发器: 不会触发触发器,因为它是批量删除。

总结

  • DROP: 删除整个表和数据,不可恢复。
  • DELETE: 删除特定数据行,可恢复。
  • TRUNCATE: 删除所有数据行,保留表结构,通常不可恢复。

示例代码

// 示例:使用JDBC执行DROP、DELETE和TRUNCATEimport java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.SQLException;public class DatabaseOperations {private static final String JDBC_URL = "jdbc:mysql://localhost:3306/yourdatabase";private static final String JDBC_USER = "yourusername";private static final String JDBC_PASSWORD = "yourpassword";public static void main(String[] args) {try (Connection conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD);Statement stmt = conn.createStatement()) {// DROP 表String dropTableSQL = "DROP TABLE IF EXISTS yourtable";stmt.executeUpdate(dropTableSQL);System.out.println("Table dropped successfully.");// 重新创建表以便演示DELETE和TRUNCATEString createTableSQL = "CREATE TABLE yourtable (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255))";stmt.executeUpdate(createTableSQL);System.out.println("Table created successfully.");// 插入一些数据String insertDataSQL = "INSERT INTO yourtable (name) VALUES ('Alice'), ('Bob'), ('Charlie')";stmt.executeUpdate(insertDataSQL);System.out.println("Data inserted successfully.");// DELETE 表数据String deleteDataSQL = "DELETE FROM yourtable WHERE name = 'Alice'";stmt.executeUpdate(deleteDataSQL);System.out.println("Data deleted successfully.");// TRUNCATE 表数据String truncateTableSQL = "TRUNCATE TABLE yourtable";stmt.executeUpdate(truncateTableSQL);System.out.println("Table truncated successfully.");} catch (SQLException e) {e.printStackTrace();}}
}

在上述代码中,演示了如何使用 JDBC 执行 DROPDELETETRUNCATE 操作。请根据需要调整数据库连接字符串、用户名、密码和 SQL 语句。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/31343.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ipython一些使用方法

使用自动补全和Tab键: IPython 提供了强大的自动补全功能。当你开始键入一个变量名或函数名时,按下 Tab 键会显示可能的补全选项。如果有多个选项,再次按下 Tab 键会列出所有选项。使用历史命令: 你可以使用 %history 命令查看之前…

CVPR 2024 以物体为中心的多感知具身大语言模型

CVPR 2024发表了关于多感知以对象为中心的具身大型语言模型(MultiPLY)的研究论文,该模型在3D环境中进行编码和交互。 提出MultiPLY是一个多感知的具身大型语言模型(LLM),能够将视觉、听觉、触觉和温度等多…

MySQL入门学习-连接查询.INNER JOIN

表的连接在数据库中扮演着至关重要的角色。当我们处理多个表之间的关联数据时,连接查询是必不可少的。 假设我们有两个表 A 和 B,它们有一个共同的字段。现在,我们想从 A 和 B 中选择出所有匹配的数据。这就是连接查询的作用。 以下是一个基本…

CSS样式与视觉效果讲解

文章目录 CSS样式与视觉效果讲解1. 样式与视觉效果1.1 颜色与背景(Colors and Backgrounds)1.1.1 颜色(Color)1.1.2 背景颜色(Background Color)1.1.3 背景图片(Background Image)1.…

本地快速部署大语言模型开发平台Dify并实现远程访问保姆级教程

文章目录 前言1. Docker部署Dify2. 本地访问Dify3. Ubuntu安装Cpolar4. 配置公网地址5. 远程访问6. 固定Cpolar公网地址7. 固定地址访问 前言 本文主要介绍如何在Linux Ubuntu系统使用Docker快速部署大语言模型应用开发平台Dify,并结合cpolar内网穿透工具实现公网环境远程访问…

深度学习500问——Chapter11:迁移学习(4)

文章目录 11.3.8 流形学习方法 11.3.9 什么是finetune 11.3.10 finetune为什么有效 11.3.11 什么是网络自适应 11.3.12 GAN在迁移学习中的应用 参考文献 11.3.8 流形学习方法 什么是流行学习? 流行学习自从2000年在Science上被提出来以后,就成为了机器…

常见的堆类型,介绍数据结构的存储结构

堆(Heap) 是一种特殊的树形数据结构,通常是一个近似的完全二叉树。它通常用于实现优先队列,其中每个元素都有一个“优先级”。在堆中,父节点的优先级总是大于或等于(在最大堆中)或小于或等于&am…

Java垃圾回收机制的深入解析

Java垃圾回收机制的深入解析 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在Java编程中,垃圾回收机制(Garbage Collection&#xff…

数据分析:解锁业务洞察与决策优化的关键

数据分析:解锁业务洞察与决策优化的关键 企业面临的最大挑战之一是如何从海量数据中提取有价值的信息,以指导决策和优化业务流程。数据分析作为一门科学和艺术,提供了一套强大的工具和方法,帮助我们理解数据,发现模式…

数据链路层【Linux网络复习版】

目录 一、数据链路层主要解决的是什么问题? 二、什么是以太网? 三、什么是MAC地址? 四、以太网帧的格式是什么? 五、 什么是MTU? 六、MTU和分片 MTU对IP协议的影响? 如何分片? 如何组装&a…

服务器安装JDK,Maven等常用环境

生产环境部署服务器需要安装一些常用工具,下面我就把常用的jdk,maven,node,git的安装方法和步骤演示 一、安装JDK环境 执行如下命令,安装JDK,所有命令都是 复制,粘贴,回车 yum install -y jav…

感恩的力量!美洲杯魔幻提前预告 阿根廷 ——早读(逆天打工人爬取热门微信文章解读)

梅西还能不能提? 引言Python 代码第一篇 洞见 感恩的力量(深度好文)第二篇 视频新闻结尾 引言 早上早起 昨天晚上1点多才睡 这几天都是 明明很早就准备上床睡觉 但是就是忍不住 吃根雪糕 喝个小饮料 看看最近的欧洲杯比赛 卒 真的是拖延症十…

Linux系统资源监控nmon工具下载及使用介绍

一、资源下载 夸克网盘链接:https://pan.quark.cn/s/2684089bc34d 里面包含了各种分享的实用工具,nmon在 Linux服务器监控nmon工具 文件夹内 文件说明: nmon16p_binaries.tar.gz 为最新的nmon官方工具包,支持linux全平台 nmo…

Hibernate 框架进行对象关系映射(ORM)

Hibernate是一个广泛使用的Java对象关系映射(ORM)框架,它通过将Java类与数据库表关联起来,使得开发人员可以使用面向对象的编程方式进行数据库操作。Hibernate的主要目标是消除冗长的JDBC代码和手动处理SQL的需求,从而…

【Agent应用】运营数据分析与决策建议

基于ERNIE Bot Agent框架实现运营数据分析与决策建议功能。 请注意!!!填入自己的token才可运行。 可以选择上传自己的数据(Excel表格),或者直接使用示例数据演示。 demo链接:https://aistudi…

数学建模理论学习:线性规划模型

三要素:目标函数、约束条件(s.t.)、决策变量(x) 目标函数:z ax1 bx2 cx3 ... 其中c为一个序列,从左到右依次从x1到xn的系数 解决下面的线性规划问题: % 目标函数系数&#xf…

造价信息网工程造价信息最新明细

提供造价信息网工程造价信息、厂商报价市场价,交通工程造价信息,电网工程造价信息,园林苗木绿化造价信息,工程定额免费资源可在 祖国建材通 www.zgjct.com 查询获取下载 造价信息网工程造价信息更新明细如下: 直辖市 …

深度神经网络——什么是决策树?

概述 决策树 是一种有用的机器学习算法,用于回归和分类任务。 “决策树”这个名字来源于这样一个事实:算法不断地将数据集划分为越来越小的部分,直到数据被划分为单个实例,然后对实例进行分类。如果您要可视化算法的结果&#xf…

基于AI技术的车型识别系统---功能页面

一.主窗口 #创建主窗口 window tk.Tk() window.title("图像目标检测系统") window.geometry(1400x700) # 设置窗口大小1.1画布的宽度为1400像素,高度为700像素,画布是放置在window中 #创建背景画布并使用grid布局管理器 canvas_background…

计算机网络知识点(七)

目录 一、简述浏览器从输入URL到展现页面的全过程 二、简述HTTP和HTTPS的区别 1、HTTP 2、HTTPS 3、区别 三、简述HTTP中的referer头的作用 1、HTTP referer是header的一部分。 2、防盗链 3、防止恶意请求 4、空Referer 5、防御CSRF 四、简述HTTP的方法有哪些 1、…