Oracle數據庫中並集,交集,差集的作用


student:

class:

1.並集:將查詢出的兩個結果合並成一個結果集。

-- union 去重,合並后的結果都是唯一
-- union all 不去重,合並后的結果有可能出現重復的
select
classid from student union select classid from class; select classid from student union all select classid from class; -- Oracle 和 MySQL都支持這種方法查詢

結果集:    union                                      union all

                                

2.交集:返回兩個查詢結果集中相同部分的結果;

--  intersect 交集,取相同的記錄
select
classid form student intersect select classid from classid; -- Oracle數據庫中的查詢方法 select s.* from (select classid from student) s join (select classid from class) c on s.classid=c.classid; -- MySQL數據庫中的查詢方法

結果集:

3.差集:返回第一個查詢結果中與第二個查詢結果不相同的那部分記錄。 查詢結果1 - 查詢結果2

--  minus 差集,主表  減去  從表中與主表相同的記錄 
select
classid form student minus select classid from classid -- Oracle 數據庫中的查詢方法 select classid from student where classid not in(select classid from class); -- Oracle 和 MySQL 這種查詢方法

結果集:

注:Oracle數據庫中的關鍵字,union 並集,去重 ;  union all 並集,不去重 ; intersect 交集,取相同的記錄;minus 差集,主表  減去  從表中與主表相同的記錄 

       MySQL數據庫中只有union和union all關鍵字,其他方法需要聯系實際需求用SQL語法取獲取記錄。

 

 

 

     

 


免責聲明!

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



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