MySQL的集合操作

集合操作

集合操作定義

1.進行合併的兩個查詢,其SELECT列表必須在數量和對應列的數據類型上保持一致
默認會去掉兩個查詢結果集中的重複行
默認結果集不排序
最終結果集的列名來自於第一個查詢的SELECT列表
UNION = UNION DISTINCT

2.集合操作特點
(1)需要多個查詢
(2)查詢的結果集需要加起來,往往是或者這個關鍵詞

示例:
SELECT playerno ##將罰款的求出來
FROM teams
UNION ##集合操作的關鍵語句,相關集合操作還有union all
SELECT playerno
FROM penalties; ##將隊長求出來
語句釋義:得到那些有罰款或者擔任隊長,或者兩個條件都符合的球員的編號
注意:使用uoion連接的兩個select語句中的列需要保持列的數量和數據類型一致

集合操作的排序問題
1.如果要對合並後的整個結果集進行排序,ORDER BY子句只能出現在最後面的查詢中
示例:
SELECT playerno
FROM teams
UNION
SELECT playerno
FROM penalties
ORDER BY playerno; ##對於union執行完的整個結果集進行排序

2.如果要合併的某個查詢需要單獨進行排序,那麼該查詢必須用小括號括起來
示例:
(SELECT playerno
FROM teams
ORDER BY playerno) ##注意小括號的用法
UNION
(SELECT playerno
FROM penalties
ORDER BY playerno);
語句釋義:第一個和第二個查詢的結果集分別排序後再進行合併,最終的結果集不排序

UNION ALL

1.UNION ALL和UNION的區別是:前者不去掉結果集中重複的行
示例:
SELECT playerno
FROM teams
UNION ALL
SELECT playerno
FROM penalties;

集合操作符和NULL值
集合運算符和NULL值
在去重操作時,如果列值中包含NULL值,認爲它們是相等的
示例:
SELECT playerno,leagueno
FROM players
WHERE playerno=7
UNION
SELECT playerno,leagueno
FROM players
WHERE playerno=7;
語句釋義:最終結果集只有一行null

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章