Union和Union All到底有什么區別


轉載https://blog.csdn.net/qq_33326449/article/details/53079082

 

以前一直不知道Union和Union All到底有什么區別,今天來好好的研究一下,網上查到的結果是下面這個樣子,可是還是不是很理解,下面將自己親自驗證:

Union:對兩個結果集進行並集操作,不包括重復行,同時進行默認規則的排序;

Union All:對兩個結果集進行並集操作,包括重復行,不進行排序;

 

下面進行簡單的測試(因為是測試,所以sql代碼寫的很簡單,沒有什么很嚴格的規范,只是為了理解這兩者之間的區別)

嚴格的標准寫法應該先判斷數據庫是否存在,表是否存在等等約束

第一步,建庫:

  1. Create database Test  
  2. go  
  3.   
  4. use Test  
  5. go  


第二步,建表:

  1. Create table Table1  
  2. (  
  3.     id int not null,  
  4.     name varchar(20) not null  
  5. )  
  6.   
  7. Create table Table2  
  8. (  
  9.     id int not null,  
  10.     name varchar(20) not null  
  11. )  

 

第三步,插入測試數據:

  1. Insert into Table1 values (1,'姚羽')  
  2. Insert into Table1 values (2,'邊兵兵')  
  3. Insert into Table1 values (3,'袁磊')  
  4.   
  5. Insert into Table2 values (1,'姚羽')  
  6. Insert into Table2 values (2,'柳春平')  
  7. Insert into Table2 values (3,'張永超')  
  8. Insert into Table2 values (4,'劉華健')  


第四步,測試開始:

  1. select * from Table1  
  2. select * from Table2  

執行兩個表的查詢結果如下

可以很容易的看到,上面插入的測試數據當中,有一條是重復的

那么我們  先看執行union 看看

  1. select * from Table1  
  2. union   
  3. select * from Table2  


 

再執行union  all 看看

  1. select * from Table1  
  2. union all  
  3. select * from Table2  

 

 

相信到此時,應該明白了union  和 union all 的區別了,  我以前也一直沒搞清楚,這次看視頻,就終於搞清楚了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM