集合運算符是針對兩個集合操作的,兩個集合必須有相同的列數;列具有相同的數據類型(至少能夠隱式轉換的);最終輸出的集合的列名是,由第一個集合的列名來確定的(可以用來連接多個結果)。註意:聯合【Union】與連接不一樣【Join】。 聯合:將多個結果集,合併為一個結果集。Union(去除重覆,相當...
集合運算符是針對兩個集合操作的,兩個集合必須有相同的列數;列具有相同的數據類型(至少能夠隱式轉換的);最終輸出的集合的列名是,由第一個集合的列名來確定的(可以用來連接多個結果)。
註意:聯合【Union】與連接不一樣【Join】。
聯合:將多個結果集,合併為一個結果集。Union(去除重覆,相當於預設應用了Distinct),Union All不去除重覆。
一般,我們用聯合查詢,用Union All,因為要連接兩個結果集,當然是兩個結果集都需要,Union All比Union的效率高,少了去除重覆的步驟。
下麵就用這兩個表,練習一下:
實例一:
實例二:
實例三:
實例四:
實例五:
下麵的這兩句代碼執行之後:
SELECT * FROM dbo.Student
SELECT * FROM dbo.Student
可以看出,兩個SQl語句分別,查出了三條記錄行。
然後我們改一下SQL:
這樣也是查詢出3條記錄,Union關鍵字,為我們去除重覆的三條記錄了。
繼續看看,下麵的:
可以看出Union ALL,查詢出來所有了記錄行了,沒有去除重覆;
總結: