UNION和UNION ALL之間的區別

2021-10-10 04:12:37 字數 2938 閱讀 5582

union

和union all

是資料庫中用於合併多個表的結果集的兩個最重要的

sql運算子。這些運算子使我們可以使用多個select

查詢,檢索所需的結果,然後將它們組合為最終輸出

。在本文中,我們將了解它們之間的區別。在進行比較之前,我們將簡要討論這些運算子。

什麼是union?

mysql

中的union

運算子允許我們將來自多個

select

查詢的兩個或多個結果組合到單個結果集中。它具有預設功能,可從表中刪除重複的行。此運算子語法始終使用第乙個

select

語句中的列名作為輸出的列名。

mysql

union必須遵循以下基本規則:

注意:我們必須知道

union

和join

是不同的。

join合併來自多個不同表的資料,而union合併來自多個相似表的資料。

join水平附加輸出,而union垂直組合結果集。

下面的視覺表示更清楚地說明了這一點:

要閱讀有關

union

運算子的更多資訊,

請單擊此處。

什麼是union all?

union all

運算子組合來自多個

select

查詢的兩個或多個結果,並將所有記錄返回到單個結果集中。它不會從

select

語句的輸出中刪除重複的行。

我們可以通過以下視覺表示理解它。

union

與union all

下面的比較表快速解釋了它們的主要區別:

union

union all

它組合了來自多個表的結果集,並將不同的記錄返回到單個結果集中。

它組合了來自多個表的結果集,並將所有記錄返回到單個結果集中。

以下是union

運算子的基本語法

select column_list from table1

union

select column_list from table2;

以下是union all

運算子的基本語法

select column_list from table1

union all

select column_list from table2;

它具有預設功能,可從輸出中消除重複的行。

它沒有消除輸出中重複行的功能。

它的效能很慢,因為查詢和刪除重複的記錄需要花費時間。

它的效能很快,因為它不會消除重複的行。

大多數資料庫使用者更喜歡使用此運算子。

大多數資料庫使用者不喜歡使用此運算子。

union

和union all示例

讓我們通過乙個示例來了解

union

和union all

運算子之間的區別。假設我們有乙個名為

student

和「student2

的表,其中包含以下資料:

表:學生

表:student2

以下sql

語句使用

union

查詢從兩個表中返回城市唯一名稱

selectcityfromstudent  

union

selectcityfromstudent2  

orderbycity;  

執行完上面的語句後,我們將得到以下輸出,因為

union

運算子僅返回不同的值。

以下sql

語句使用

union all

查詢返回所有城市名稱,包括兩個表中的重複項

selectcityfromstudent  

unionall

selectcityfromstudent2  

orderbycity; 

執行完上面的語句後,我們將得到以下輸出,因為

union all

運算子返回整個記錄而不消除不同的值。

SQL語句之Union和Union All

sql中union和join語句非常類似,但是union有乙個限制條件 兩個 sql 語句所產生的字段需要是同樣的資料種類,最後的結果會看到不同的資料值。格式 sql 語句 1 union sql 語句 2 例如 表store info 和表internet sales 使用union語句 sele...

UNION 和UNION ALL 的區別

在資料庫中,union 和union all 關鍵字都是將兩個結果集合並為乙個,但這兩者從使用和效率上來說都有所不同。union 在進行表鏈結後會篩選掉重複的記錄,所以在表鏈結後會對所產生的結果集進行排序運算,刪除重複的記錄再返回結果。實際大部分應用中是不會產生重複的記錄,最常見的是過程表與歷史表 ...

UNION和UNION ALL的區別

關鍵字 union 和union all 的區別 出處 在資料庫中,union和union all關鍵字都是將兩個結果集合並為乙個,但這兩者從使用和效率上來說都有所不同。union在進行表鏈結後會篩選掉重複的記錄,所以在表鏈結後會對所產生的結果集進行排序運算,刪除重複的記錄再返回結果。實際大部分應用...