【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.pswp.cn/web/65472.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/65472.shtml
英文地址,請注明出處:http://en.pswp.cn/web/65472.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【express-generator】05-路由中間件和錯誤處理(第一階段收尾)

一、前言 上篇文章我們介紹了express-generator的請求體解析,重點講了常用的請求體數據格式(JSON/URL 編碼的表單數據)以及一個FILE文件上傳,同時搭配代碼示范進行輔助理解。 二、本篇重點 我們繼續第一階段的知識,…

Vue3(elementPlus) el-table替換/隱藏行箭頭,點擊整行展開

element文檔鏈接: https://element-plus.org/zh-CN/component/form.html 一、el-table表格行展開關閉箭頭替換成加減號 注:Vue3在樣式中修改箭頭圖標無效,可能我設置不對,歡迎各位來交流指導 轉變思路:隱藏箭頭&…

【Javascript Day1】javascript基礎

javascript編程規則 彈窗&#xff08;舉例&#xff09; alert("內容")&#xff0c;直接寫在控制區生效 三種寫法 1、行內js語法 &#xff1a;需要注意引號的問題 <input type"button" value"提示窗" οnclick alert("消息") &…

GitLab創建用戶,設置訪問SSH Key

繼上一篇 Linux Red Hat 7.9 Server安裝GitLab-CSDN博客 安裝好gitlab&#xff0c;啟用管理員root賬號后&#xff0c;開始創建用戶賬戶 1、創建用戶賬戶 進入管理后臺頁面 點擊 New User 輸入用戶名、郵箱等必填信息和登錄密碼 密碼最小的8位&#xff0c;不然會不通過 拉到…

QT鼠標、鍵盤事件

一、鼠標 鼠標點擊 mousePressEvent 鼠標釋放 mouseReleaseEvent 鼠標移動 mouseMoveEvent 鼠標雙擊 mouseDoubleClickEvent 鼠標滾輪 QWheelEvent 二、鍵盤 鍵盤按下 keyPressEvent 鍵盤松開keyReleaseEvent 一、鼠標 #include <QMouseEvent> 鼠標點擊 mouse…

數據庫環境安裝(day1)

網址&#xff1a;MySQL 下載&#xff08;環境準備&#xff09;&#xff1a; &#xff08;2-5點擊此處&#xff0c;然后選擇合適的版本&#xff09; 1.linux在線YUM倉庫 下載/安裝: wget https://repo.mysql.com//mysql84-community-release-el9-1.noarch.rpm rpm -i https://r…

Qt 5.14.2 學習記錄 —— ? QWidget 常用控件(2)

文章目錄 1、Window Frame2、windowTitle3、windowIcon4、qrc機制5、windowOpacity 1、Window Frame 在運行Qt程序后&#xff0c;除了用戶做的界面&#xff0c;最上面還有一個框&#xff0c;這就是window frame框。對于界面的元素&#xff0c;它們的原點是Qt界面的左上角或win…

以太網協議在汽車應用中的動與靜

為了讓網絡中的設備能夠隨時或隨地接入網絡或離開網絡&#xff0c;做到&#xff1a;接入時無需多余的配置就能和其他設備互相通信&#xff1b;離開時又不會導致設備或網絡崩潰。以太網從物理層到協議層展現出多方面的靈活性&#xff0c;&#xff0c;使其成為連接各種設備和系統…

牛客網刷題 ——C語言初階(6指針)——BC105 矩陣相等判定

1. 題目描述&#xff1a;BC105 矩陣相等判定 牛客網OJ題鏈接 描述&#xff1a; KiKi得到了兩個n行m列的矩陣&#xff0c;他想知道兩個矩陣是否相等&#xff0c;請你回答他。(當兩個矩陣對應數組元素都相等時兩個矩陣相等)。 示例1 輸入&#xff1a; 2 2 1 2 3 4 1 2 3 4 輸出…

外觀設計模式學習

1.介紹 外觀模式&#xff08;Facade Pattern&#xff09; 是一種結構型設計模式&#xff0c;通過提供一個統一的接口&#xff0c;用于訪問子系統中的一組接口&#xff0c;從而簡化客戶端與復雜系統之間的交互。它隱藏了系統的復雜性&#xff0c;使得客戶端只需與一個簡單的接口…

基于單片機的數字氣壓計設計

摘要:在嵌入式技術快速發展過程中&#xff0c;智能測量儀器被廣泛應用于工業生產以及人們日常生活領域。數字氣壓計在實際應用中&#xff0c;利用氣壓傳感器檢測環境中的壓力大小&#xff0c;便于實現對設備進行智能化的控制操作。數字氣壓計在氣象監測、礦產開采、科學實驗等環…

嵌入式軟件C語言面試常見問題及答案解析(三)

嵌入式軟件C語言面試常見問題及答案解析(三) 上一篇已經足夠長了,再長也就有點不禮貌了,所以在這兒繼續來總結分享那個面試中遇到的題目,文中的問題和提供的答案或者代碼均代表個人的理解,如有不合理或者錯誤的地方,歡迎大家批評指正。 本文中題目列表 1. 編碼實現子串定…

HTML5實現好看的中秋節網頁源碼

HTML5實現好看的中秋節網頁源碼 前言一、設計來源1.1 網站首頁界面1.2 登錄注冊界面1.3 節日由來界面1.4 節日習俗界面1.5 節日文化界面1.6 節日美食界面1.7 節日故事界面1.8 節日民謠界面1.9 聯系我們界面 二、效果和源碼2.1 動態效果2.2 源代碼 源碼下載結束語 HTML5實現好看…

ROS通信編程——服務通信

前言 學完了話題通信其實操作流程基本都已經很熟悉了&#xff0c;因此服務通訊的學習就會流暢許多。 服務通信也是ROS中一種極其常用的通信模式&#xff0c;服務通信是基于請求響應模式的&#xff0c;是一種應答機制。也即: 一個節點A向另一個節點B發送請求&#xff0c;B接收…

零基礎微信小程序開發——全局配置之tabBar(保姆級教程+超詳細)

&#x1f3a5; 作者簡介&#xff1a; CSDN\阿里云\騰訊云\華為云開發社區優質創作者&#xff0c;專注分享大數據、Python、數據庫、人工智能等領域的優質內容 &#x1f338;個人主頁&#xff1a; 長風清留楊的博客 &#x1f343;形式準則&#xff1a; 無論成就大小&#xff0c;…

2024年12月HarmonyOS應用開發者高級認證全新題庫

注意事項&#xff1a;切記在考試之外的設備上打開題庫進行搜索&#xff0c;防止切屏三次考試自動結束&#xff0c;題目是亂序&#xff0c;每次考試&#xff0c;選項的順序都不同&#xff0c;作者已于2024年12月15日又更新了一波題庫&#xff0c;題庫正確率99%&#xff01; 新版…

【網絡協議】IPv4 地址分配 - 第二部分

前言 在第 1 部分中&#xff0c;我們學習了 IPv4 地址的分配方式&#xff0c;了解了各種類型的 IPv4 地址&#xff0c;并進行了基礎的子網劃分&#xff08;Subnetting&#xff09;。在第 2 部分中&#xff0c;我們將繼續學習子網劃分&#xff0c;并引入一些新的概念。 【網絡…

浙江安吉成新的分布式光伏發電項目應用

摘 要&#xff1a;分布式光伏發電站是指將光伏發電組件安裝在用戶的建筑物屋頂、空地或其他適合的場地上&#xff0c;利用太陽能進行發電的一種可再生能源利用方式&#xff0c;與傳統的大型集中式光伏電站相比&#xff0c;分布式光伏發電具有更靈活的布局、更低的建設成本和更高…

7z 安裝與使用指南

文章目錄 1. 安裝 7z1.1 在 Linux 上安裝 7z對于 Debian/Ubuntu 系統&#xff1a;對于 CentOS/RHEL 系統&#xff1a;對于 Fedora 系統&#xff1a;對于 Arch Linux 系統&#xff1a; 1.2 在 Windows 上安裝 7z 2. 使用 7z 進行壓縮和解壓2.1 壓縮文件示例&#xff1a;壓縮一個…

scanf:數據之舟的擺渡人,靜臥輸入港灣的詩意守候

大家好啊&#xff0c;我是小象?(?ω?)? 我的博客&#xff1a;Xiao Xiangζ????? 很高興見到大家&#xff0c;希望能夠和大家一起交流學習&#xff0c;共同進步。* 這一節我們主要來學習scanf的基本用法&#xff0c;了解scanf返回值&#xff0c;懂得scanf占位符和賦值…