More SQL(Focus Subqueries、Join)

目錄

Subqueries

Subqueries That Return One Tuple

Subqueries and Self Connection

The IN Operator

The Exists Operator

The Operator ANY

The Operator ALL

Union, Intersection, and Difference(交并差)

Bag Semantics

Controlling Duplicate Elimination

Inner Joins

Outer Joins


Subqueries

  • A parenthesized SELECT-FROM-WHERE statement (subquery ) can be used as a value in a number of places, including FROM and WHERE clauses.(將子查詢的結果作為一張表進行查詢)

  • Example: in place of a relation in the FROM clause, we can use a subquery and then query its result.

  • Must use a tuple-variable to name tuples of the result.(必須為子查詢的這張臨時表命名)

Subqueries That Return One Tuple

  • If a subquery is guaranteed to produce one tuple, then the subquery can be used as a value.

  • Usually, the tuple has one component.

  • A run-time error occurs if there is no tuple or more than one tuple.

例題:

??

子查詢的優先級比父查詢的優先級更高

Subqueries and Self Connection

思考題:是不是所有的額子查詢都能夠寫成連接形式,又是不是所有的連接都能寫成子查詢形式?并且思考兩者的效率如何?

The IN Operator

  1. <tuple> IN (<subquery>) is true if and only if the tuple is a member of the relation produced by the subquery.(IN表達式正確當且僅當元組在子查詢返回的結果中)

  2. Opposite: <tuple> NOT IN (<subquery>).

  3. IN-expressions can appear in WHERE clauses.

The Exists Operator

  • EXISTS(<subquery>) is true if and only if the subquery result is not empty.

  • Example: From Beers(name, manf) , find those beers that are the unique beer by their manufacturer.

SELECT name
FROM Beers b1
WHERE NOT EXISTS (SELECT *FROM BeersWHERE manf = b1.manf ANDname <> b1.name);

The Operator ANY

  • x = ANY(<subquery>) is a boolean condition that is true if x equals at least one tuple in the subquery result.(ANY語句為真當且僅當x與其中的至少一個元組相同)

= could be any comparison operator.(=可以是其他的運算符號)

Example: x >= ANY(<subquery>) means x is not the uniquely smallest tuple produced by the subquery.

  • Note tuples must have one component only.

The Operator ALL

  • x <> ALL(<subquery>) is true if?for every tuple t in the relation, x is not equal to t.
  • That is, x is not in the subquery result.
<> can be any comparison operator.

Example: x >= ALL(<subquery>) means there is no tuple larger than x in the subquery result.

Union, Intersection, and Difference(交并差)

Union, intersection, and difference of relations are expressed by the following forms, each involving subqueries:

  • (<subquery>) UNION (<subquery>)

  • (<subquery>) INTERSECT (<subquery>)

  • (<subquery>) EXCEPT (<subquery>)

要注意的是:UNION產生的結果是一個集合,集合是不允許出現重復元素的,但如果寫法是(UNION ALL那么產生的結果是一個包,包中是允許重復元素的)

深入思考:交、并、差運算的前提應該都是排序,所以說在排序之后便直接產生了集合

Bag Semantics

  • Although the SELECT-FROM-WHERE statement uses bag semantics, the default for union, intersection, and difference is set semantics.
  • That is, duplicates are eliminated as the operation is applied.?

Controlling Duplicate Elimination

  • Force the result to be a set by SELECT DISTINCT . . .
  • Force the result to be a bag (i.e., don’t eliminate duplicates) by ALL, as in . . . UNION ALL . . .

Inner Joins

SELECT buyer_name, sales.buyer_id, qty
FROM buyers INNER JOIN sales
ON buyers.buyer_id = sales.buyer_id

Outer Joins

SELECT buyer_name, sales.buyer_id, qty
FROM buyers LEFT OUTER JOIN sales
ON buyers.buyer_id = sales.buyer_id

SELECT buyer_name, sales.buyer_id, qty
FROM sales RIGHT OUTER JOIN buyers
ON buyers.buyer_id = sales.buyer_id

內連接和外連接的核心區別在于對于未匹配行的處理:?

特性內連接(INNER JOIN)外連接(OUTER JOIN)
匹配策略僅保留兩表中完全匹配的行保留至少一個表的所有行,未匹配的部分用?NULL?填充
結果集大小可能小于或等于參與連接的表的行數之和可能等于或大于參與連接的表的行數之和
默認關鍵字JOIN(等價于?INNER JOIN必須顯式指定類型(LEFT/RIGHT/FULL
數據完整性丟棄未匹配的數據保留所有數據(通過?NULL?表示無匹配)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/82810.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/82810.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/82810.shtml

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

相關文章

OpenGL Chan視頻學習-4 Vertex Buffers and Drawing a Triangle in OpenGL

一、視頻鏈接 【最好的OpenGL教程之一】https://www.bilibili.com/video/BV1MJ411u7Bc?p5&vd_source44b77bde056381262ee55e448b9b1973 二、相關網站 docs.gl 三、代碼整理 c #include <GL/glew.h> #include <GLFW/glfw3.h>#include<iostream>int…

WSL中ubuntu通過Windows帶代理訪問github

WSL中ubuntu通過Windows帶代理訪問github 前言: WSL是Windows下的ubuntu訪問工具&#xff0c;目前無法訪問外網&#xff0c;因此需要配置一下。 步驟一 代理中進行如下設置: 步驟二 ubuntu22.04中修改配置 使用如下命令獲取IP地址&#xff1a; ip route | grep default | aw…

為(FramePack)的視頻生成添加首尾幀功能

文章目錄 &#xff08;一&#xff09;前言&#xff08;二&#xff09;可選的尾幀&#xff08;三&#xff09;測試&#xff08;四&#xff09;例子 &#xff08;一&#xff09;前言 前提是這個&#xff1a;《筆記本6GB本地可跑的圖生視頻項目&#xff08;FramePack&#xff09;…

C語言中:遞歸問題的深入研究

C語言中&#xff1a;遞歸問題的深入研究 函數的遞歸有兩個限制條件&#xff1a; 1.遞歸存在限制條件&#xff0c;當滿?這個限制條件的時候&#xff0c;遞歸便不再繼續。 2.每次遞歸調?之后越來越接近這個限制條件。 例子&#xff1a; #include <stdio.h> int main…

《C++20新特性全解析:模塊、協程與概念(Concepts)》

引言&#xff1a;C20——現代C的里程碑 C20是繼C11之后最具革命性的版本&#xff0c;它通過模塊&#xff08;Modules&#xff09;、協程&#xff08;Coroutines&#xff09;和概念&#xff08;Concepts&#xff09;三大核心特性&#xff0c;徹底改變了C的代碼組織方式、并發模…

xcode卡死問題,無論打開什么程序xcode總是在轉菊花,重啟電腦,卸載重裝都不行

很可能是因為我們上次沒有正常關閉Xcode&#xff0c;而Xcode保留了上次錯誤的一些記錄&#xff0c;而這次打開Xcode依然去加載錯誤的記錄&#xff0c;所以必須完全刪除這些記錄Xcode才能加載正常的項目。 那么也就是說&#xff0c;我們是不是只需要刪除這部分錯誤記錄文件就可以…

華為云Flexus+DeepSeek征文|華為云Flexus云服務器X實例上部署Dify:打造高效的開源大語言模型應用開發平臺

目錄 前言 1 Dify與華為云部署概述 1.1 什么是 Dify 1.2 華為云與 Flexus 云服務器的優勢 2 云服務器部署 Dify 的步驟詳解 2.1 模板選擇 2.2 參數配置 2.3 資源棧設置 2.4 確認部署信息并執行 3 部署成功后的操作與平臺使用指南 3.1 訪問平臺 3.2 設置管理員賬號 …

物流項目第九期(MongoDB的應用之作業范圍)

本項目專欄&#xff1a; 物流項目_Auc23的博客-CSDN博客 建議先看這期&#xff1a; MongoDB入門之Java的使用-CSDN博客 需求分析 在項目中&#xff0c;會有兩個作業范圍&#xff0c;分別是機構作業范圍和快遞員作業范圍&#xff0c;這兩個作業范圍的邏輯是一致的&#xf…

網絡拓撲如何跨網段訪問

最近領導讓研究下跟甲方合同里的&#xff0c;跨網段訪問怎么實現&#xff0c;之前不都是運維網工干的活么&#xff0c;看來裁員裁到動脈上了碰到用人的時候找不到人了&#xff0c; 只能趕鴨子上架讓我來搞 IP 網絡中&#xff0c;不同網段之間的通信需要通過路由器&#xff0c;…

【前端】PWA

目錄 概述實戰vue項目問題匯總 PWA&#xff08;漸進式 Web 應用&#xff0c;Progressive Web App&#xff09; 2015提出 概述 PWA 是一種提升 Web 應用體驗的技術&#xff0c;使其具備與原生應用相似的功能和性能。PWA不僅能夠在網頁上運行&#xff0c;還能在手機或桌面上像傳…

湖北理元理律師事務所:從法律合規到心靈契合的服務升維

債務優化不僅是數字游戲&#xff0c;更是信任重建的過程。湖北理元理律師事務所在實踐中發現&#xff1a;68%的債務糾紛中存在溝通斷裂。為此&#xff0c;機構構建了“三維信任修復機制”。 維度一&#xff1a;信息透明的技術實現 區塊鏈存證艙&#xff1a;客戶手機實時查看律…

香橙派3B學習筆記2:Vscode遠程SSH登錄香橙派_權限問題連接失敗解決

Vscode下載插件&#xff0c;ssh遠程登錄香橙派。 ssh &#xff1a; orangepi本地ip 密碼 &#xff1a; orangepi 安裝 Remote - SSH 擴展SSH插件&#xff1a; SSH遠程連接&#xff1a; ssh usernameremote_host ssh -p port_number usernameremote_host默認22端口號就用第一行…

VMware安裝Ubuntu實戰分享大綱

深入解析快速排序 一、分治策略分解 分解階段&#xff1a; 選擇基準元素 $pivot$將數組劃分為三個子集&#xff1a; $$ left {x | x < pivot} $$ $$ equal {x | x pivot} $$ $$ right {x | x > pivot} $$ 遞歸排序&#xff1a; 對 left 和 right 子集遞歸調用快速排…

AI 讓無人機跟蹤更精準——從視覺感知到智能預測

AI 讓無人機跟蹤更精準——從視覺感知到智能預測 無人機跟蹤技術正在經歷一場前所未有的變革。曾經,我們只能依靠 GPS 或簡單的視覺識別來跟蹤無人機,但如今,人工智能(AI)結合深度學習和高級視覺算法,正讓無人機的跟蹤變得更加智能化、精準化。 尤其是在自動駕駛、安防監…

GATED DELTA NETWORKS : IMPROVING MAMBA 2 WITH DELTA RULE

TL;DR 2024 年 Nvidia MIT 提出的線性Transformer 方法 Gated DeltaNet&#xff0c;融合了自適應內存控制的門控機制&#xff08;gating&#xff09;和用于精確內存修改的delta更新規則&#xff08;delta update rule&#xff09;&#xff0c;在多個基準測試中始終超越了現有…

Laravel單元測試使用示例

Date: 2025-05-28 17:35:46 author: lijianzhan 在 Laravel 框架中&#xff0c;單元測試是一種常用的測試方法&#xff0c;它是允許你測試應用程序中的最小可測試單元&#xff0c;通常是方法或函數。Laravel 提供了內置的測試工具PHPUnit&#xff0c;實踐中進行單元測試是保障代…

【FastAPI】--3.進階教程(二)

【FastAPI】--進階教程1-CSDN博客 【FastAPI】--基礎教程-CSDN博客 目錄 1.FastAPI - CORS ?2.FastAPI - CRUD 操作 2.1.Create 2.2.Read 2.3.Update 2.4.Delete 3.FastAPI - 使用 GraphQL 4.FastAPI - Websockets 5.FastAPI - 事件處理程序 6.FastAPI - 安裝 Fla…

FEMFAT許可的更新與升級流程

隨著工程仿真技術的不斷發展&#xff0c;FEMFAT作為一款領先的疲勞分析軟件&#xff0c;持續為用戶提供卓越的性能和創新的功能。為了保持軟件的最新性和高效性&#xff0c;了解FEMFAT許可的更新與升級流程至關重要。本文將為您詳細介紹FEMFAT許可的更新與升級流程&#xff0c;…

麒麟v10,arm64架構,編譯安裝Qt5.12.8

Window和麒麟x86_64架構&#xff0c;官網提供安裝包&#xff0c;麒麟arm64架構的&#xff0c;只能自己用編碼編譯安裝。 注意&#xff0c;“桌面”路徑是中文&#xff0c;所以不要把源碼放在桌面上編譯。 1. 下載源碼 從官網下載源碼&#xff1a;https://download.qt.io/arc…

20250528-C#知識:結構體

C#知識&#xff1a;結構體 結構體是一種自定義數據類型&#xff0c;用戶可以根據自身需求設計自己的結構體用來表示某種數據集合。結構體是一種值類型&#xff0c;結合了值類型的優點&#xff0c;避免了引用類型的缺點。本文簡單介紹并探究一下C#中的結構體。 結構體一般寫在命…