日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

union 和 union all 有什么不同?

發布時間:2023/12/13 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 union 和 union all 有什么不同? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

假設我們有一個表 Student, 包括以下字段與數據:
drop table student;
create table student
( id
int primary key,
name nvarchar2(50) not null,
score number not null
);
insert into student values(1,'Aaron',78);
insert into student values(2,'Bill',76);
insert into student values(3,'Cindy',89);
insert into student values(4,'Damon',90);
insert into student values(5,'Ella',73);
insert into student values(6,'Frado',61);
insert into student values(7,'Gill',99);
insert into student values(8,'Hellen',56);
insert into student values(9,'Ivan',93);
insert into student values(10,'Jay',90);
commit;
Union Union All 的區別。
select *
from student
where id < 4
union
select *
from student
where id > 2 and id < 6
結果將是
1 Aaron 78
2 Bill 76
3 Cindy 89
4 Damon 90
5 Ella 73
如果換成 Union All 連接兩個結果集, 則返回結果是:
1 Aaron 78
2 Bill 76
3 Cindy 89
3 Cindy 89
4 Damon 90
5 Ella 73
可以看到, Union Union All 的區別之一在于對重復結果的處理。
UNION 在進行表鏈接后會篩選掉重復的記錄, 所以在表鏈接后會對所產生的結果集進行排
序運算, 刪除重復的記錄再返回結果。 實際大部分應用中是不會產生重復的記錄, 最常見的
是過程表與歷史表 UNION 如:
select * from gc_dfys
union
select * from ls_jg_dfys
這個 SQL 在運行時先取出兩個表的結果, 再用排序空間進行排序刪除重復的記錄, 最
后返回結果集, 如果表數據量大的話可能會導致用磁盤進行排序。


UNION ALL 只是簡單的將兩個結果合并后就返回。 這樣, 如果返回的兩個結果集中有
重復的數據, 那么返回的結果集就會包含重復的數據了。
從效率上說, UNION ALL 要比 UNION 快很多, 所以, 如果可以確認合并的兩個結果集
中不包含重復的數據的話, 那么就使用 UNION ALL

轉載于:https://www.cnblogs.com/zhaideyou/p/5932251.html

總結

以上是生活随笔為你收集整理的union 和 union all 有什么不同?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。