当前位置: 首页 > 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 ...);

相关文章:

  • 网站建设经费上海seo推广
  • 网站ssl证书怎么做郑州百度seo关键词
  • 做色情网站需要多少钱seo学途论坛网
  • 两学一做网站按钮图片免费网站统计代码
  • 微信网站制作企业线下推广方式有哪些
  • 定制 网站开发 价格四川seo推广方案
  • js 组装树形结构
  • Mac安装Apache CXF的时候报错:/Library/Internet: No such file or directory
  • Windows下Zookeeper客户端启动缓慢问题分析与解决方案
  • Python训练营-Day33
  • 在ASP.NET Core WebApi中使用标识框架(Identity)
  • 对象实例化内存布局与访问定位
  • spring项目启动sheel脚本
  • SpringBoot 数据库连接池与 ManticoreSearch 兼容性测试
  • 本地如何安装midscene.js运行环境
  • Liunx操作系统笔记2
  • 【AI论文】从跨领域视角重新审视强化学习在大型语言模型推理中的应用
  • 【实时Linux实战系列】基于实时Linux的音频处理应用开发
  • BGP边界网关协议
  • 深度图聚类DGC—Paper Notes
  • Windows所有系统自带.NET Framework版本win7,win10,win11预装.NET版本
  • CommunityToolkit.Mvvm 重构激光直写控制软件
  • Jenkins 常用定时构建脚本
  • 电商导购app平台的缓存策略与性能优化方案:架构师的实践经验
  • 将Python Tkinter程序转换为手机可运行的Web应用 - 详细教程
  • 激光束修复手机屏任意层不良区域,实现液晶线路激光修复原理