mysql--union與union all的區(qū)別

mysql--union與union all的區(qū)別


最近做項(xiàng)目有一需求,需要把兩張表的數(shù)據(jù)進(jìn)行疊加,用到unionunion all兩個(gè)操作符,以下講解這兩個(gè)操作符的區(qū)別。

源數(shù)據(jù):

源數(shù)據(jù)表01

源數(shù)據(jù)表02



使用union和union all的前提條件, 合并集合的結(jié)果有相同個(gè)數(shù)的列,并且每個(gè)列的類型是一樣的。列的順序必須相同;

union的用法:

union操作符用于合并兩個(gè)或多個(gè) SELECT 語句的結(jié)果集。

SELECT * FROM studentScores_Test01UNION SELECT * FROM studentScores_Test


結(jié)果:

union結(jié)果展示

對比上圖兩個(gè)表中源數(shù)據(jù),發(fā)現(xiàn)兩張表數(shù)據(jù)相同,union之后,數(shù)據(jù)為一張表數(shù)據(jù),說明union之后,會(huì)對數(shù)據(jù)進(jìn)行去重,但并沒有排序;

另外,UNION 結(jié)果集中的列名總是等于 UNION 中第一個(gè) SELECT 語句中的列名。

union all用法:

union all操作符用于合并兩個(gè)或多個(gè) SELECT 語句的結(jié)果集。

SELECT * FROM studentScores_Test01 UNION ALL SELECT * FROM studentScores_Test;

結(jié)果:

union all結(jié)果

通過結(jié)果發(fā)現(xiàn):union all 不會(huì)對結(jié)果進(jìn)行去重。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容