SQL关键字三分钟入门:DELETE —— 删除数据

在数据库操作中,除了添加和修改记录外,我们有时还需要删除不需要的记录。例如:

  • 清除不再使用的用户账号;
  • 删除已完成并归档的订单;
  • 移除测试时插入的数据。

这时候就需要用到 SQL 中非常基础但极其重要的关键字 —— DELETE

它是用来从表中删除现有记录的核心命令,掌握它能让你轻松地清理数据库中的数据。


 什么是 DELETE?

DELETE 是 SQL 中用于从表中删除记录的关键字语句。通过指定要删除的表以及相应的条件,你可以精确地移除数据库中的特定记录或所有记录。

你可以把它理解为:“我要从这张表里删除符合条件的数据”。


 基本语法

DELETE FROM table_name
WHERE condition;
  • table_name:你要删除记录的表。
  • WHERE(可选):限定哪些行将被删除;如果省略了 WHERE 子句,则会删除表中的所有记录。

⚠️ 注意:忘记使用 WHERE 条件会导致整个表的所有记录都被删除,请务必小心。


 示例讲解

假设我们有一个 users 表,结构如下:

idnameagegendercreated_at
1张三202025-06-20
2李四222025-06-21
3王五212025-06-22

 示例1:删除单个记录

如果你想删除名为“张三”的用户:

 

sql

深色版本

DELETE FROM users
WHERE name = '张三';
结果:
idnameagegendercreated_at
2李四222025-06-21
3王五212025-06-22

 示例2:删除满足复杂条件的记录

如果你想删除年龄大于等于22岁的男性用户:

DELETE FROM users
WHERE age >= 22 AND gender = '男';
结果:
idnameagegendercreated_at
2李四222025-06-21

 示例3:删除所有记录

如果你想要清空整个表中的数据,可以省略 WHERE 子句。例如,清空 users 表中的所有记录:

DELETE FROM users;
结果:users 表变为空表,无任何记录。

⚠️ 提醒:此操作不可逆,请谨慎使用。


 示例4:结合子查询删除

有时候你需要根据另一个表的信息来决定删除哪些记录。比如,从 orders 表中找出所有未支付的订单,并删除对应的客户信息:

DELETE FROM customers
WHERE customer_id IN (SELECT customer_id FROM orders WHERE status = '未支付'
);
这个例子说明了:
  • 如何利用子查询的结果作为删除的依据。
  • 删除那些在 orders 表中有未支付订单的客户信息。

使用建议

操作技巧使用建议
备份数据在执行大规模删除之前,建议先备份相关数据,以防误操作
使用事务对于关键数据的删除,最好放在事务中执行,以便出现问题时可以回滚
避免全表删除如果不需要删除所有记录,请务必加上 WHERE 子句
子查询限制当使用子查询作为删除来源时,确保子查询返回唯一结果,否则可能导致异常

 总结对比表

场景SQL 示例
删除单个记录DELETE FROM users WHERE name = '张三';
删除满足复杂条件的记录DELETE FROM users WHERE age >= 22 AND gender = '男';
删除所有记录DELETE FROM users;
结合子查询删除DELETE FROM customers WHERE customer_id IN (SELECT ...);

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

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

相关文章

electron 全量更新

electron-builder.yml配置更新地址 # 配置自动更新的信息 publish:provider: generic # 更新服务提供者url: http://xxx.xxxx.com/pc/xxx-xx# 更新的地址服务器地址 会自动读取latest.yml 下的版本号比较 检测更新方法autoUpdater.js// src/main/autoUpdater.jsimport { app, d…

《大模型 Agent 应用实战指南》第2章:商业目标与 Agent 能力边界定义

在任何技术项目,特别是像大模型 Agent 这样具有创新性和复杂性的项目启动之初,明确清晰的商业目标是成功的基石。这不仅仅是技术团队的职责,更需要产品、运营、销售甚至高层管理者的深度参与。一个明确的目标能确保所有团队成员步调一致,资源有效分配,并最终衡量项目的成功…

提供稳定可靠的自助共享空间系统,支撑客户无人自助门店运营不错数据,历程感想

以技术产品研发系统为主,为客户提供自助共享空间系统解决方案,适用于共享棋牌室,共享麻将室,共享台球室,共享KTV,共享舞蹈室等场景,以下是其中一位客户真实门店运营数据,第一家店本月…

Golang单例实现

Go语言中,实现单例模式的方式有很多种。单例模式确保一个类只有一个实例,并提供一个全局访问点。Go语言没有类的概念,但是可以通过结构体、函数和包级变量来实现类似的功能。 懒汉实现 type Product interface {DoSomething() }type single…

JVM元空间(Metaspace)详解及其工作流程

JVM元空间(Metaspace)详解与工作流程分析 元空间概述 元空间(Metaspace)是Java虚拟机(JVM)在HotSpot VM 1.8及以后版本中引入的,用于替代永久代(PermGen)的内存区域。它主要存储类的元数据信息,包括: 类的结构信息(如方法、字段…

【JAVA】idea中打成jar包后报错错误: 找不到或无法加载主类

排查步骤 首先要排查的是,将jar文件打开,查看里面的内容是否完整是否有META-INF/MANIFEST.MF是否有MANIFEST.MF里面类路径的目录排查路径里面是否有class文件,如主类 com.example.Main 对应的 class 文件应位于 com/example/Main.class 常见…

Fisco Bcos学习 - 开发第一个区块链应用

文章目录 一、前言二、业务场景分析:简易资产管理系统三、智能合约设计与实现3.1 存储结构设计3.2 接口设计3.3 完整合约代码 四、合约编译与Java接口生成五、SDK配置与项目搭建5.1 获取Java工程项目5.2 项目目录结构5.3 引入Web3SDK5.4 证书与配置文件 六、业务开发…

软件设计模式选择、判断解析-1

前言 解析是我个人的理解,相对来说我觉得是能对上定义的逻辑的 目录 一.单选题 1.设计模式的两大主题是(  )  解析:无 2.下列模式中,属于行为型模式的是() 解析: 排除A和D,剩下的观察者的“观察”…

【编程基本功】Win11中Git安装配置全攻略,包含Git以及图形化工具TortoiseGit

1 摘要 今天田辛老师给大家带来了一份超实用的博客,手把手教你安装并配置 Git 及其图形化界面 TortoiseGit,从官网下载到最终完成配置,每一个步骤都给大家讲得明明白白,还配有相应的截图,即使是新手小白也能轻松上手&…

细谈QT信号与槽机制

转自个人博客 信号与槽是我个人认为QT中最牛的机制之一,最近没有其他的内容可写,今天就来细细总结一下这个信号与槽机制。 1. 信号与槽机制概述 信号与槽机制可以理解为QT中的一种通信手段,在运行相关代码前,分别声明信号和槽&a…

Docker Swarm 与 Kubernetes 在集群管理上的主要区别

Docker Swarm 和 Kubernetes 是两种流行的容器编排工具,它们都可以用于部署、管理和扩展容器化应用,但在集群管理方面有明显的差异。 下面从多个维度对比它们在集群管理上的主要区别: ✅ 一、总体定位 项目Docker SwarmKubernetes官方支持D…

【StarRocks系列】查询优化

步骤参考官网 分析查询 | StarRocks StarRocks-Profile分析及优化指南 StarRocks-Profile分析及优化指南 - 经验教程 - StarRocks中文社区论坛

软测八股--测试理论 1 测试基础

软件测试? 发现程序中的侧屋执行程序工程 目的:不仅是找出错误,还要分析错误产生原因和错误分布。检查开发如阿健过程出现的bug,使开发人员及时修改。测试只能说明软件中存在错误 目标:尽可能发现多的错误。一个好的…

mfc与vs成功在xp系统所需做的修改

目录 前言一、MFC程序 inet_pton 、CT2A 未声明问题1)问题1:inet_pton :undeclared identifier - inet_pton未声明2)问题1:CT2A :undeclared identifier - CT2A未声明 二、VS程序 使用事件、委托问题1&…

SpringMVC系列(三)(请求处理的十个实验(上))

0 引言 作者正在学习SpringMVC相关内容,学到了一些知识,希望分享给需要短时间想要了解SpringMVC的读者朋友们,想用通俗的语言讲述其中的知识,希望与诸位共勉,共同进步! 本系列会持续更新!&…

Python案例练习:函数专题

用函数重新设计文章单词出现次数程序 composition This is my family. We have a father, a mother and two brothers. My father is a doctor. He works in a hospital. My mother is a teacher. She teaches English in a school. My older brother is a student. He stu…

数据驱动 AI 时代:数据库行业的技术跃迁与生态重构

在数据驱动的 AI 战场,真正的决胜武器不是复杂精妙的算法模型,而是深埋在企业核心系统中的高维数据网络(图)。 时至今日,市场对AI的风向正从“狂飙突进”转向“精耕细作”,就在上周(米国时间6月…

码分复用通俗理解

一、码分复用(CDMA)的通俗理解 码分复用(Code Division Multiple Access,CDMA)是一种让多个用户在同一时间、同一频段上同时传输数据的技术。它的核心思想是:给每个用户分配一个唯一的“编码钥匙”&#x…

MAC、IP地址、TCP、UDP、SSL、OSI模型

目录 一 概要 二 MAC和IP地址 (1)什么是 MAC 地址? (2)什么是 IP 地址? (3)MAC 地址 vs IP 地址对比表 (4)总结一下 二 TCP、UDP、SSL详细介绍 &#…

弱口令介绍及破解方式笔记

一、弱口令的定义与危害 弱口令是指容易被猜测或破解的密码,通常包含简单数字组合(如“123456”)、键盘连续字符(如“qwerty”)、个人信息(如生日、姓名)或常见词汇(如“password”…