集合運算符是針對兩個集合操作的,兩個集合必須有相同的列數;列具有相同的數據類型(至少能夠隱式轉換的);最終輸出的集合的列名是,由第一個集合的列名來確定的(可以用來連接多個結果)。
注意:聯合【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,查詢出來所有了記錄行了,沒有去除重復;
總結: