当前位置: 首页 > news >正文

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.lqws.cn/news/525331.html

相关文章:

  • 定位坐标系深度研究报告
  • C++学习笔记--Chapter Two--类的定义、对象的创建和使用、构造函数
  • 《解锁前端潜力:自动化流程搭建秘籍》
  • python学智能算法(十六)|机器学习支持向量机简单示例
  • HarmonyOS5 折叠屏适配测试:验证APP在展开/折叠状态下的界面自适应,以及会出现的问题
  • 数组题解——二分查找【LeetCode】
  • 八股文——JAVA基础:说一下C++与java的区别
  • 黑马python(十六)
  • GBDT:梯度提升决策树——集成学习中的预测利器
  • 设计模式-桥接模式、组合模式
  • Selenium 二次封装通用页面基类 BasePage —— Python 实践
  • 矩阵题解——螺旋矩阵【LeetCode】
  • 大模型推理-高通qnn基础
  • PYTHON从入门到实践5-列表操作
  • 超级好用的小软件:geek,卸载软件,2m大小
  • vue2简单的路由切换
  • OpenCV图像旋转:单点旋转与图片旋转
  • Windows10中设置多个虚拟IP方法
  • Linux size命令详解
  • Boss:攻击
  • Azure虚拟机添加磁盘
  • Docker、Docker composer与Docker desktop
  • H5录音、图文视频IndexDB储存最佳实践:用AI生成语音备忘录
  • Fisco Bcos学习 - 开发第一个区块链应用
  • 高防IP能不能防住500GDdos攻击
  • AI系列1-1: 离线部署通义大模型及持续修正-RedHat+NVIDA GPU
  • Java课后习题(编程题)
  • SpringBoot高校党务系统
  • 激光雷达全链路光学系统及探测器能量耦合分析
  • python的少数民族音乐网站系统