[學習筆記] Oracle集合運算、內連接、外連接、偽列

来源:https://www.cnblogs.com/danhuang/archive/2020/03/15/12497155.html
-Advertisement-
Play Games

集合運算 INTERSECT(交集),返回兩個查詢共有的記錄。 UNION ALL(並集重覆),返回各個查詢的所有記錄,包括重覆記錄。 UNION(並集不重覆),返回各個查詢的所有記錄,不包括重覆記錄 。 MINUS(補集),返回第一個查詢的記錄減去第二個查詢的記錄之後剩餘的記錄。 內連接 兩張表通 ...


集合運算

  • INTERSECT(交集),返回兩個查詢共有的記錄。

  • UNION ALL(並集重覆),返回各個查詢的所有記錄,包括重覆記錄。

  • UNION(並集不重覆),返回各個查詢的所有記錄,不包括重覆記錄 。

  • MINUS(補集),返回第一個查詢的記錄減去第二個查詢的記錄之後剩餘的記錄。

-- 交集
select * from stuinfo1 
intersect
select * from stuinfo2;

-- 並集重覆
select * from stuinfo1 
union all
select * from stuinfo2;

-- 並集不重覆
select * from stuinfo1 
union 
select * from stuinfo2;

-- 補集
select * from stuinfo1 
minus
select * from stuinfo2;

內連接

兩張表通過某個欄位進行內關聯,查詢結果是通過該欄位按關係運算符匹配出的數據行。

select a.stuid, a.stuname, a.classno,
       b.classno, b.classname, b.monitorid, b.monitorname
from stuinfo a, class b
where a.classno = b.classno;

外連接

  • left join:等價於 left outer join,返回左表中的所有記錄和右表中聯結欄位相等的記錄。

  • right join:等價於 right outer join,返回右表中的所有記錄和左表中聯結欄位相等的記錄。

  • full join:等價於 full outer join,查詢結果等於左外連接和右外連接的和。

--左外連接(stuinfo1表中數據都保留,stuinfo2不在stuinfo1中存在的欄位為null值)
select a.*, b.stuid, b.stuname
from stuinfo1 a left join stuinfo2 b
on a.stuid = b.stuid;

--左外連接另外一種寫法
select a.*, b.stuid, b.stuname
from stuinfo1 a,stuinfo2 b 
where a.stuid = b.stuid(+);

--右外連接(stuinfo2表中數據都保留,stuinfo1不在stuinfo2中存在的欄位為null值)
select a.*, b.stuid, b.stuname
from stuinfo1 a right join stuinfo2 b
on a.stuid = b.stuid;

--右外連接另外一種寫法
select a.*, b.stuid, b.stuname
from stuinfo1 a,stuinfo2 b 
where a.stuid(+)=b.stuid;

--全外連接(stuinfo1、stuinfo2表中數據都保留,stuinfo1不在stuinfo2存在的學生相關欄位為null值,stuinfo2不在stuinfo1存在的學生相關欄位為null值)
select a.*, b.stuid, b.stuname
from stuinfo1 a full join stuinfo2 b
on a.stuid = b.stuid;

偽列

  • ROWID:返回數據在數據文件中的物理地址。ROWID 值可以唯一的標識表中的一行。
  • ROWNUM:標識查詢結果集的順序,第一行標識為1,後面依次遞增。
select t.*, t.rowid from stuinfo t;
select t.*, t.rowid from stuinfo t where t.rowid='AAAShjAAEAAAAEFAAD';

select t.*, rownum from stuinfo t;

-- 返回學生信息表中學生年齡最低的前四位同學
select * from (
    select t.*, rownum from stuinfo t order by t.age asc
) where rownum <= 4;

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 原文鏈接: "https://xiaoheidiannao.com/articles/Vim For Chrome.html" "Chrome瀏覽器" 有很多強大的擴展程式,其中我最喜歡的就是Vimium,其他的擴展程式都可以不安裝,但就是這個一定要安裝,用過以後你就會發現你已經離不開它了! Vim ...
  • 背景 最近公司系統還原用戶時偶爾會出現部分用戶信息未還原成功的問題,最為開發人員,最頭疼的不是代碼存在bug,而是測試發現了bug,但一旦我去重現,它就不見了。Are you kidding me? 經過漫長的溝通與嘗試,終於發現了端倪,這個問題只有在多人同時操作修改同一用戶信息時才會出現。 哦,那 ...
  • 介紹MySQL Integer類型的幾種分類,以及INT(11)中11數字表達的意思 ...
  • MySQL可以運行在不同的模式下,而且可以在不同的場景下運行不同的模式,這主要取決於系統變數 sql_mode 的值。本文主要介紹一下這個值的查看與設置,主要在Mac系統下。 對於每個模式的意義和作用,網上很容易找到,本文不做介紹。 按作用區域和時間可分為3個級別,分別是會話級別,全局級別,配置(永 ...
  • 在業界廣泛流傳著一句話:數據和特征決定了機器學習的上限,而模型和演算法只是逼近這個上限而已。 由此可見,數據和特征是多麼的重要,而在數據大多數場景下,數據已經就緒,不同人對於同樣的數據處理得到的特征卻千差萬別,最終得到的建模效果也是高低立現。從數據到特征這就要從特征工程說起了... ...
  • 我的表結構 student_info | id |name |profession|score| | | | | | |id|姓名|分數|專業| 按分數段統計 400到500人數,300到400人數 按分數段和專業統計 400到500人數,300到400人數 sql動態拼接生成 輸出sql ...
  • 現在有兩張表,第一張表有學生姓名,語文,數學,英語成績,數據量46萬。第二張表有學生姓名,物理,化學,政治成績,數據量10萬。 1. 找出既參加了table1,也參加了table2的考試的學生的數學和物理成績: SELECT achievement_1.name, achievement_1.mat ...
  • 函數 單行函數:對一行數據進行操作的函數,如字元串函數、數值函數、轉換函數、日期函數等。 聚合函數:同時對多行數據進行操作,如求和函數等。 字元串函數 | 函數 | 說明 | | | | | ASCII(X) | 求字元X的ASCII碼 | | CHR(X) | 求ASCII碼對應的字元 | | L ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...