【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.rhkb.cn/news/414644.html

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

相关文章

filezilla使用教程(window下filezilla使用教程)

filezilla使用教程(window下filezilla使用教程) 一、安装与配置 首先,你需要从FileZilla的官方网站下载并安装适合你操作系统的版本。安装完成后,打开FileZilla,你将看到一个简洁的用户界面。 在FileZilla中&#x…

「SpEL Validator」使用指南(一套无敌的参数校验组件)

前言 这是一套全新的参数校验组件,并非造轮子。 看完本文你可能会觉得用不上或不屑于使用,但这玩意确实有应用场景,你不妨稍微留意一下,日后你总会发现有用得上的时候。 此乃系列文章,当前为第②篇,其他…

用Python实现时间序列模型实战——Day 8: 季节性ARIMA模型 (SARIMA)

一、学习内容 1. SARIMA 模型的定义与公式推导 SARIMA 模型: SARIMA 模型是扩展了 ARIMA 模型的一种方法,全称为季节性自回归积分滑动平均模型(Seasonal AutoRegressive Integrated Moving Average)。它结合了 ARIMA 模型的非季…

sed awk 第二版学习(二)—— 正则表达式语法

目录 一、表达式 二、成行的字符 1. 反斜杠 2. 通配符 3. 编写正则表达式 4. 字符类 (1)字符的范围 (2)排除字符类 (3)POSIX 字符类补充 5. 重复出现的字符 6. 匹配单词 7. gres 替换脚本 8. …

超越卷积滤波器,HyCoT利用Transformer捕捉高光谱图像的全局依赖性 !

近年来,基于学习的高光谱图像(HSI)压缩模型的开发引起了大量关注。现有的模型主要使用卷积滤波器,仅捕捉局部依赖性。 此外,它们通常会带来高昂的训练成本,并具有较大的计算复杂性。 为了解决这些问题&…

upload-labs通关攻略

Pass-1 这里上传php文件说不允许上传 然后咱们开启抓包将png文件改为php文件 放包回去成功上传 Pass-2 进来查看提示说对mime进行检查 抓包把这里改为image/jpg; 放包回去就上传成功了 Pass-3 这里上传php文件它说不允许上传这些后缀的文件 那咱们就可以改它的后缀名来绕过…

KinectFusion

1.KinectFusion 笔记来源: 论文地址:KinectFusion: Real-time 3D Reconstruction and Interaction Using a Moving Depth Camera* 项目地址:github/KinectFusion [1] 截断符号距离 | TSDF, Truncated Signed Distance Function 本篇对Kinec…

工业储能柜内部运行状态监测装置

工商业储能是用户侧储能的主要应用之一,其核心场景包括峰谷套利、需(容)量管理、应急备电、动态增容和需求侧响应。为了实现这些功能并确保储能系统的安全、可靠与经济运行,储能集成厂家必须关注多个方面,其中储能设备…

WPF ToolkitMVVM IOC IServiceConllection

用微软自带的 IOC 需要安装 using Microsoft.Extensions.DependencyInjection; using System.Configuration; using System.Data; using System.Windows;namespace WpfApp3 {/// <summary>/// Interaction logic for App.xaml/// </summary>public partial class…

BITCN合集(BITCN 、BITCN-GRU、BITCN-BIGRU、BITCN-LSTM、BITCN-BILSTM、BITCN-SVM)

BITCN合集&#xff08;BITCN 、BITCN-GRU、BITCN-BIGRU、BITCN-LSTM、BITCN-BILSTM、BITCN-SVM&#xff09; BITCN合集&#xff08;BITCN 、BITCN-GRU、BITCN-BIGRU、BITCN-LSTM等&#xff09;代码获取戳此处代码获取戳此处代码获取戳此处 BITCN&#xff08;双向时间卷积神经网…

uniapp引入最新版Animate.css及使用示例

亲测可用,不好用请移至评论区揍我 动画库官网:https://animate.style/ cdn地址:https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css(截至目前最新版为:v4.1.1) 1. 将css下载后导入项目static目录中 2. 重要!修改下载的css文件内容 文件内容如…

vue脚手架路由快速入门

这里写目录标题 路由 router路由插件的引用离线在线CDN 单独路由使用案例项目中如何定义路由1\安装路由2\创建路由文件router.js以及创建相关文件3\应用插件main.js4\实现切换<router-link></router-link>5\展示位置 <router-view></router-view> 嵌套…

在线绘制哑铃图(dumbbell chart)展示基因拷贝数变异(CNV)

导读&#xff1a; 哑铃图的名称来源于其形状&#xff0c;它看起来像一个哑铃&#xff0c;有两个圆形的“重量”在两端&#xff0c;通过一根“杆”连接。常用于展示两个或多个数据集之间的差异。本文介绍了如何使用哑铃图展示基因的拷贝数变异。 Journal of Translational Medi…

UDP简单聊天室创建

目录 一. 服务端模块实现 二. 处理聊天消息模块实现 三. 调用服务端模块实现 四. 客户端模块实现 五. 效果展示 本文介绍了如何用UDP创建一个简单的聊天室。 一. 服务端模块实现 服务端仍然沿用我们前面的思想&#xff08;高内聚低耦合&#xff09;&#xf…

C语言小tip之函数递归

hello&#xff0c;各位小伙伴们今天我们来学习一下函数递归。 什么是函数递归呢&#xff1f;简单来说就是函数自己来调用自己。函数递归的主要思想是把大事化小&#xff0c;递归包含两层方面&#xff1a;1、递推 2、回归 在使用函数递归的时候要注意包含两个限制条件&#…

Linux 软硬连接

1. 硬链接 实际上并不是通过文件名来找到磁盘上的文件&#xff0c;而是通过inode。在linux中可以让多个文件名对应于同一个 inode&#xff0c;而这种方式就是建立硬链接。硬链接是文件系统中的一种链接类型&#xff0c;它创建了文件的一个额外的目录项&#xff0c;但不占用额外…

全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用

SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型&#xff0c;它综合考虑了土壤-水分-大气以及植被间的相互作用&#xff1b;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程&#xff0c;使其能够精确的模拟土壤中水分的运动&#xff0c;而且耦合了W…

EmguCV学习笔记 C# 7.1 角点检测

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

Ubuntu22.04安装 docker和docker-compose环境

Docker简介 Docker 是一个开源的应用容器引擎&#xff0c;它使开发者能够打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&#xff0c;相互之间不会有任何接口&#xff08;…

蓝色炫酷碎粒子HTML5导航源码

源码介绍 蓝色炫酷碎粒子HTML5导航源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c;重定向这个界面 效果预览 源码获取 蓝色炫酷碎粒…