union和union all區別


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

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

 

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

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

Create database Test;    #建庫
use Test; #選擇庫

  #創建表

  Create table Table1
  (
   id int not null,
   name varchar(20) not null
  );

  Create table Table2
  (
   id int not null,
   name varchar(20) not null
  );

  #插入記錄

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

  測試開始:

select * from Table1;

  

select * from Table2;

  

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

  那么我們  先看執行union 看看:

select * from Table1  
union   
select * from Table2;

  

  重復的記錄"姚羽"只顯示一條。

  再執行union  all 看看:

  

    重復的記錄"姚羽"顯示兩條,沒有去重。 

 

 

 

 


免責聲明!

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



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