国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

GaussDB數(shù)據(jù)庫SQL系列-UNION & UNION ALL

這篇具有很好參考價值的文章主要介紹了GaussDB數(shù)據(jù)庫SQL系列-UNION & UNION ALL。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、前言

二、GaussDB? UNION/UNION ALL

1、GaussDB UNION 操作符

2、語法定義

三、GaussDB實驗示例

1、創(chuàng)建實驗表

2、合并且除重(UNION)

3、合并不除重(UNION ALL)

4、合并帶有WHERE子句SQL結(jié)果集(UNION ALL)

5、業(yè)務(wù)邏輯除重后合并(UNION ALL)

四、GaussDB UNION常見錯誤

1、“each UNION query must have the same number of columns”

2、“UNION types timestamp without time zone and text cannot be matched”

五、小結(jié)

一、前言

SQL(結(jié)構(gòu)化查詢語言)是一種用于管理關(guān)系型數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。它允許用戶通過使用SQL語言來操作數(shù)據(jù)庫中的數(shù)據(jù)。而在SQL中,UNION是一個非常強大的功能,它可以將多個SELECT語句的結(jié)果合并成一個結(jié)果集。本文將以GaussDB數(shù)據(jù)庫為例,介紹一下UNION操作符的使用。

二、GaussDB? UNION/UNION ALL

1、GaussDB UNION 操作符

GaussDB UNION 操作符用于合并兩個或多個 SELECT 語句的結(jié)果集。請注意,UNION 內(nèi)部的每個 SELECT 語句必須擁有相同數(shù)量的列。列也必須擁有相似的數(shù)據(jù)類型。同時,每個 SELECT 語句中的列的順序必須相同。

2、語法定義

1)UNION語法

SELECT column1
      ,column2
	  ,……
FROM table1 
[WHERE condition]
UNION
SELECT column1
      ,column2
	  ,……
FROM table2 
[WHERE condition]

2)UNION ALL 語法

SELECT column1
      ,column2
	  ,……
FROM table1 
[WHERE condition]
UNION ALL
SELECT column1
      ,column2
	  ,……
FROM table2 
[WHERE condition]

說明:UNION在合并兩個或多個集合時會執(zhí)行去重操作,而UNION ALL則直接將兩個或者多個結(jié)果集合并,不執(zhí)行去重。 另外,執(zhí)行去重會消耗大量的時間,因此,在一些實際應(yīng)用場景中,如果通過業(yè)務(wù)邏輯已確認(rèn)了兩個集合不存在重重復(fù)數(shù)據(jù)時,可直接用UNION ALL? 替代UNION,以便提升性能。

三、GaussDB實驗示例

本文以GaussDB數(shù)據(jù)庫為實驗平臺,

1、創(chuàng)建實驗表并初始化

1)學(xué)生信息表student(ID、姓名、性別、城市)

--創(chuàng)建學(xué)生信息表
CREATE table student(
 sId VARCHAR(10) NOT NULL
,sname VARCHAR(10) NOT NULL
,ssex VARCHAR(10) NOT NULl
,scity VARCHAR(10) NOT NULl
);

--初識化實驗數(shù)據(jù)
INSERT INTO student VALUES('s01' , '趙雷' , '男', 'XIAN');
INSERT INTO student VALUES('s02' , '錢電' , '男', 'YUNNAN');
INSERT INTO student VALUES('s03' , '孫風(fēng)' , '男', 'NIXIA');
INSERT INTO student VALUES('s04' , '李云' , '男', 'XIZANG');
INSERT INTO student VALUES('s05' , '周梅' , '女', 'XINJIANG');
INSERT INTO student VALUES('s06' , '吳蘭' , '女', 'CHENGDU');
INSERT INTO student VALUES('s07' , '鄭竹' , '女', 'XIAN');
INSERT INTO student VALUES('s08' , '張三' , '女', 'CHENGDU');

--查看結(jié)果集
SELECT * FROM student;

GaussDB數(shù)據(jù)庫SQL系列-UNION & UNION ALL,GaussDB經(jīng)驗總結(jié),gaussdb,sql,數(shù)據(jù)庫,原力計劃

2)教師信息表teacher(ID、姓名、性別、城市)?

--創(chuàng)建教師信息表
CREATE table teacher(
 teid VARCHAR(10) NOT NULL
,tname VARCHAR(10) NOT NULL
,tsex VARCHAR(10) NOT NULL
,tcity VARCHAR(10) NOT NULL
);

--初始化實驗數(shù)據(jù)
INSERT INTO teacher VALUES('t01' , '張磊', '男', 'XIAN');
INSERT INTO teacher VALUES('t02' , '李強', '男', 'BEIJING');
INSERT INTO teacher VALUES('t03' , '王剛', '男', 'XINJIANG');

--查看結(jié)果集
SELECT * FROM teacher;

GaussDB數(shù)據(jù)庫SQL系列-UNION & UNION ALL,GaussDB經(jīng)驗總結(jié),gaussdb,sql,數(shù)據(jù)庫,原力計劃

2、合并且除重(UNION)

--獲取學(xué)生和教師所屬的城市,并按城市名稱首字母升序排序。

SELECT t.city
FROM (
	SELECT scity AS city
	FROM student
	UNION
	SELECT tcity AS city
	FROM teacher
) t
ORDER BY t.city ASC;

結(jié)果集如下截圖,且城市數(shù)據(jù)不存在重復(fù):

GaussDB數(shù)據(jù)庫SQL系列-UNION & UNION ALL,GaussDB經(jīng)驗總結(jié),gaussdb,sql,數(shù)據(jù)庫,原力計劃

3、合并不除重(UNION ALL)

--獲取所有學(xué)生和教師所屬的城市,并按城市名稱首字母升序排序。

SELECT t.city
FROM (
	SELECT scity AS city
	FROM student
	UNION ALL
	SELECT tcity AS city
	FROM teacher
) t
ORDER BY t.city ASC;

結(jié)果集如下截圖,羅列了所有城市數(shù)據(jù):

GaussDB數(shù)據(jù)庫SQL系列-UNION & UNION ALL,GaussDB經(jīng)驗總結(jié),gaussdb,sql,數(shù)據(jù)庫,原力計劃

4、合并帶有WHERE子句SQL結(jié)果集(UNION ALL)

--獲取來自'XIAN'的學(xué)生和教師的所有信息,并按學(xué)生和教師的編號升序排序。

SELECT t.*
FROM  
(SELECT Sid AS id
       ,Sname AS name
       ,Ssex AS sex
       ,Scity AS city
FROM student WHERE Scity='XIAN' 
UNION ALL
SELECT  Tid AS id
       ,Tname AS name
       ,Tsex AS sex
       ,Tcity AS city
FROM teacher WHERE Tcity='XIAN') t
ORDER BY t.id  ASC;

結(jié)果集如下截圖,羅列了'XIAN'的學(xué)生和教師的所有信息:

GaussDB數(shù)據(jù)庫SQL系列-UNION & UNION ALL,GaussDB經(jīng)驗總結(jié),gaussdb,sql,數(shù)據(jù)庫,原力計劃

5、業(yè)務(wù)邏輯除重后合并(UNION ALL)

在一些業(yè)務(wù)場景下,比如上游系統(tǒng)提供的兩張表或者多張表之間互相不會存重復(fù)數(shù)據(jù),且自身也不存在重復(fù)數(shù)據(jù),則為了提升合并時SQL性能、減少SQL執(zhí)行時間,則選擇UNION ALL操作符。

四、GaussDB UNION常見錯誤

1、“each UNION query must have the same number of columns”

解決思路:根據(jù)提示查看兩個表的表結(jié)構(gòu),看字段數(shù)量是否一支。

GaussDB數(shù)據(jù)庫SQL系列-UNION & UNION ALL,GaussDB經(jīng)驗總結(jié),gaussdb,sql,數(shù)據(jù)庫,原力計劃

2、“UNION types timestamp without time zone and text cannot be matched”

解決思路:根據(jù)提示查看兩個表的表結(jié)構(gòu),看字段類型是否一致。

?GaussDB數(shù)據(jù)庫SQL系列-UNION & UNION ALL,GaussDB經(jīng)驗總結(jié),gaussdb,sql,數(shù)據(jù)庫,原力計劃

五、小結(jié)

在實際業(yè)務(wù)場景中,無論選擇GaussDB數(shù)據(jù)庫,還是其他關(guān)系型數(shù)據(jù)庫,在使用UNION和UNION ALL 時,都需要注意以下幾點:

  • 左右兩側(cè)的SQL字段數(shù)量和字段類型需要保持一致;
  • 業(yè)務(wù)需求是否需要考慮數(shù)據(jù)除重(合并前除重還是合并時除重);
  • 根據(jù)表中數(shù)據(jù)量的大小,需要對SQL的執(zhí)行效率進行評估,從而考慮是否需要選擇臨時表進行過渡后再合并;
  • 需要考慮SQL編寫的復(fù)雜度,不能為了寫SQL而寫SQL,需要結(jié)合業(yè)務(wù)需求進行選擇。

——結(jié)束文章來源地址http://www.zghlxwxcb.cn/news/detail-660673.html

到了這里,關(guān)于GaussDB數(shù)據(jù)庫SQL系列-UNION & UNION ALL的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • GaussDB云數(shù)據(jù)庫SQL應(yīng)用系列-視圖管理

    GaussDB云數(shù)據(jù)庫SQL應(yīng)用系列-視圖管理

    一、前言 GaussDB是一款基于云計算技術(shù)的高性能關(guān)系型數(shù)據(jù)庫,支持多種數(shù)據(jù)模型和分布式架構(gòu)。在GaussDB中,視圖管理是非常重要的一項功能,它可以幫助用戶更方便地管理和查詢數(shù)據(jù)。 數(shù)據(jù)庫視圖管理是指對數(shù)據(jù)庫中的視圖進行創(chuàng)建、修改、刪除、查詢等操作的過程。 參

    2024年02月06日
    瀏覽(632)
  • GaussDB云數(shù)據(jù)庫SQL應(yīng)用系列-定時任務(wù)管理

    GaussDB云數(shù)據(jù)庫SQL應(yīng)用系列-定時任務(wù)管理

    前言 GaussDB數(shù)據(jù)庫定時任務(wù)主要可以用于實現(xiàn)定期的備份、統(tǒng)計信息采集、數(shù)據(jù)匯總、數(shù)據(jù)清理與優(yōu)化等,它是指在指定的時間間隔內(nèi)自動執(zhí)行一次或多次SQL語句的程序。 GaussDB數(shù)據(jù)庫兼容Oracle定時任務(wù)功能主要通過DBE_TASK高級功能包提供的二次封裝接口實現(xiàn)(另可參見GaussD

    2024年02月08日
    瀏覽(90)
  • GaussDB云數(shù)據(jù)庫SQL應(yīng)用系列—分區(qū)表管理

    GaussDB云數(shù)據(jù)庫SQL應(yīng)用系列—分區(qū)表管理

    目錄 前言 一、分區(qū)表基本原理 二、分區(qū)表主要優(yōu)勢 三、分區(qū)表常見場景 四、GaussDB分區(qū)表管理(示例) 示例一:創(chuàng)建范圍分區(qū)表(RANGE) 示例二:創(chuàng)建哈希分區(qū)表(HASH) 示例三:創(chuàng)建列表分區(qū)(LIST) 五、總結(jié) 前言 本文將介紹GaussDB云數(shù)據(jù)庫的分區(qū)表技術(shù),包括原理、優(yōu)勢以

    2024年02月09日
    瀏覽(88)
  • GaussDB高斯數(shù)據(jù)庫(SQL語法分類)

    GaussDB高斯數(shù)據(jù)庫(SQL語法分類)

    日常查詢中,最常用的是通過FROM子句實現(xiàn)的查詢。 語法格式:使用方法: SELECT [ , ... ] FROM table_reference [ , ... ] SELECT之后和FROM子句之前出現(xiàn)的表達(dá)式稱為SELECT項。SELECT項用于指定要查詢的列,F(xiàn)ROM指定要從哪個表中查詢。如果要查詢所有列,可以在SELECT后面使用*號,如

    2024年02月16日
    瀏覽(92)
  • GaussDB高斯數(shù)據(jù)庫(SQL語法入門)

    GaussDB高斯數(shù)據(jù)庫(SQL語法入門)

    DDL數(shù)據(jù)定于語言:用于定義或修改數(shù)據(jù)庫中的對象,如:表,索引,視圖,數(shù)據(jù)庫,序列,用戶,角色,表空間,會話等。 DDL不支持物化視圖,存儲過程,觸發(fā)器,自定義函數(shù),自定義類型。 DML數(shù)據(jù)操作語言:用于對數(shù)據(jù)庫表中的數(shù)據(jù)進行操作,如插入,更新和刪除。 DCL數(shù)

    2023年04月10日
    瀏覽(98)
  • DBeaver連接華為高斯數(shù)據(jù)庫 DBeaver連接Gaussdb數(shù)據(jù)庫 DBeaver connect Gaussdb

    DBeaver連接華為高斯數(shù)據(jù)庫 DBeaver連接Gaussdb數(shù)據(jù)庫 DBeaver connect Gaussdb

    ? ????????華為GaussDB出來已經(jīng)有一段時間,最近工作中剛到Gauss數(shù)據(jù)庫。作為coder,那么如何通過可視化工具來操作Gauss呢? 本文將記錄使用 免費、開源的DBeaver 來連接Gauss 高斯數(shù)據(jù)庫。 ????????1、安裝Gauss數(shù)據(jù)庫 ????????已經(jīng)安裝好的Gauss數(shù)據(jù)庫服務(wù)。參考地址:

    2024年02月16日
    瀏覽(22)
  • 【GaussDB數(shù)據(jù)庫】序

    【GaussDB數(shù)據(jù)庫】序

    參考鏈接1:國產(chǎn)數(shù)據(jù)庫華為高斯數(shù)據(jù)庫(GaussDB)功能與特點總結(jié) 參考鏈接2:GaussDB(DWS)介紹 官方網(wǎng)站:云數(shù)據(jù)庫GaussDB GaussDB是華為自主創(chuàng)新研發(fā)的分布式關(guān)系型數(shù)據(jù)庫。該產(chǎn)品支持分布式事務(wù),同城跨AZ部署,數(shù)據(jù)0丟失,支持1000+的擴展能力,PB級海量存儲。 同時擁有云上高

    2024年01月18日
    瀏覽(24)
  • GaussDB數(shù)據(jù)庫事務(wù)介紹

    GaussDB數(shù)據(jù)庫事務(wù)介紹

    目錄 一、前言 二、GaussDB事務(wù)的定義及應(yīng)用場景 三、GaussDB事務(wù)的管理 四、GaussDB事務(wù)語句 五、GaussDB事務(wù)隔離 六、GaussDB事務(wù)監(jiān)控 七、總結(jié) 隨著大數(shù)據(jù)和互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,數(shù)據(jù)庫管理系統(tǒng)的作用越來越重要,實現(xiàn)數(shù)據(jù)的快速讀寫以及保證數(shù)據(jù)的安全性和完整性成為企業(yè)

    2023年04月26日
    瀏覽(28)
  • 再識華為云數(shù)據(jù)庫——GaussDB

    再識華為云數(shù)據(jù)庫——GaussDB

    目錄 一、GaussDB: 立足創(chuàng)新與自研,助力企業(yè)核心數(shù)據(jù)安全高效上云 二、GaussDB: 基于華為openGauss開放生態(tài)打造的 金融級分布式數(shù)據(jù)庫 三、GaussDB(for MySQL): 基于開源生態(tài)打造的企業(yè)級自研云原生數(shù)據(jù)庫 四、DRS+UGO:數(shù)據(jù)庫結(jié)構(gòu)+應(yīng)用+數(shù)據(jù)一站式遷移... 5 五、GaussDB NoSQL:國內(nèi)首家,

    2024年02月01日
    瀏覽(21)
  • GaussDB數(shù)據(jù)庫管理系統(tǒng)介紹

    GaussDB數(shù)據(jù)庫管理系統(tǒng)介紹

    內(nèi)部: 云化+自動化方案。通過數(shù)據(jù)庫運行基礎(chǔ)設(shè)施的云化將DBA(數(shù)據(jù)庫管理員)和運維人員的日常工作 自動化。 外部: 采用與數(shù)據(jù)庫周邊生態(tài)伙伴對接與認(rèn)證的生態(tài)連接融合方案,解決開發(fā)者/DBA難獲取、應(yīng)用難對接等生態(tài)難題。 分布式: 分布式事務(wù)能力+跨DC(Data Center,數(shù)據(jù)

    2024年02月08日
    瀏覽(101)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包