mysql--union與union all的區(qū)別
最近做項(xiàng)目有一需求,需要把兩張表的數(shù)據(jù)進(jìn)行疊加,用到union和union 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)行去重。