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

【SQL】Delete使用

目录

语法

需求

示例

分析

代码


语法

DELETE删除表中所需内容

删除表中满足特点条件的行:DELETE FROM 表名 WHERE 条件;

删除表中所有行:DELETE FROM 表名;

WHERE子句

WHERE子句用于指定从表中选取记录的条件。允许筛选数据,只返回满足特定条件的记录。WHERE子句可以包含各种条件,这些条件可以基于一个或多个列的值。可以使用逻辑运算符(如ANDORNOT)来组合多个条件。后文示例可供提供and和not的用法。

子查询

子查询(Sub Query)或称为内查询(Inner Query)、嵌套查询(Nested Query),是SQL语言中一种常用的程序模块,用于在一个查询语句中嵌套另一个查询语句。当一个查询的结果是另一个查询的条件时,这个查询就被称为子查询。

  • 子查询必须括在圆括号中。
  • 子查询SELECT子句通常只有一个列,除非主查询中多个列与子查询中的列进行比较。
  • 子查询不能直接使用ORDER BY,但可以在子查询中使用GROUP BY。
  • 返回多行数据的子查询只能与多值操作符(如IN)一起使用。

需求

表:Person

±------------±--------+
| Column Name | Type |
±------------±--------+
| id | int |
| email | varchar |
±------------±--------+
id 是该表的主键列(具有唯一值的列)。
该表的每一行包含一封电子邮件。电子邮件将不包含大写字母。

编写解决方案删除所有重复的电子邮件,只保留一个具有最小id的唯一电子邮件。

运行脚本后,显示的答案是Person表。驱动程序将首先编译并运行代码片段,然后再显示Person表。Person表的最终顺序无关紧要

示例

输入:
Person 表:
±—±-----------------+
| id | email |
±—±-----------------+
| 1 | john@example.com |
| 2 | bob@example.com |
| 3 | john@example.com |
±—±-----------------+
输出:
±—±-----------------+
| id | email |
±—±-----------------+
| 1 | john@example.com |
| 2 | bob@example.com |
±—±-----------------+
解释: john@example.com重复两次。我们保留最小的Id = 1。

分析

编写解决方案删除所有重复的电子邮件,只保留一个具有最小id的唯一电子邮件。

相当于删除所有id较大且重复的电子邮箱

仅提供一个Person表,包含id和email

可以直接作笛卡尔积,比较id大小和电子邮箱,删除所有id较大且相同的电子邮箱

通过where语句和and并列即可实现,where a.id>b.id and a.email=b.email

同样的思路,也可以通过子查询实现

通过子查询查找id最小的电子邮箱,

select min(id) as id from Person group by email

再通过where not in 剔除其他信息

where id not in
(
select id from
(
select min(id) as id
from Person
group by email
) u
)

代码

delete a
from Person a, Person b
where a.id>b.id and a.email=b.email

OR

delete from Person
where id not in 
(select id from (select min(id) as id from Person group by email) a
)

http://www.lryc.cn/news/517171.html

相关文章:

  • KBQA前沿技术
  • 跨年烟花C++代码
  • centos服务器 /1ib64/libm.so.6: version “GLIBc 2.27’ not found 异常
  • 职场:如何快速适应职场新环境?
  • axios的替代方案onion-middleware
  • 设计模式——泛型单例类
  • 三维卷积( 3D CNN)
  • 【JAVA】Java开发小游戏 - 简单的2D平台跳跃游戏 基本的2D平台跳跃游戏框架,适合初学者学习和理解Java游戏开发的基础概念
  • 分享3个国内使用正版GPT的网站【亲测有效!2025最新】
  • CSDN Markdown编辑器设置视频居中完美解决方案
  • Java到底是值传递还是引用传递????
  • 初学stm32 --- 电源监控
  • Win10本地部署大语言模型ChatGLM2-6B
  • [ LeetCode 75 ] 1768. 交替合并字符串
  • (三)通过WebGL绘制一个简单的三角形来理解渲染管线
  • 医学图像分析工具02:3D Slicer || 医学影像可视化与分析工具 支持第三方插件
  • Ollama VS LocalAI:本地大语言模型的深度对比与选择指南
  • 虚表 —— 隐藏行(简单版)
  • CAD批量打印可检索的PDF文件
  • 2025.1.7(c++基础知识点)
  • jenkins入门12-- 权限管理
  • Edge SCDN高效防护与智能加速
  • Ubuntu22.04配置静态ip
  • [Linux]线程的互斥与同步
  • Java:缓存:LinkedHashMap实现Lru
  • 【形式篇】年终总结怎么写:PPT如何将内容更好地表现出来
  • 自定义字典转换器用于easyExcel 导入导出
  • 0 Token 间间隔 100% GPU 利用率,百度百舸 AIAK 大模型推理引擎极限优化 TPS
  • js:事件流
  • Linux对比Windows