oracle知識整理(1) union和union all的區別,left join和right join的區別(各種join的區別)

union和union all的區別

UNION和UNION ALL關鍵字都是將兩個結果集合併爲一個,但這兩者從使用和效率上來說都有所不同。

  • UNION相當於真正的關聯,會進行連接+排序+去重複
  • UNION ALL相當於簡單把結果連接起來,速度快
  1. UNION在進行錶鏈接後將會按照字段的順序進行排序,會篩選掉重複的記錄,Union All不會去除重複記錄,也不存在排序。

  2. 所以從效率上說,UNION ALL 要比UNION快很多,所以,如果可以確認合併的兩個結果集中不包含重複數據且不需要排序時的話,那麼就使用UNION ALL。

爲了刪除重複項,必須對結果集進行排序,這可能會影響UNION的性能,具體取決於要排序的數據量以及各種RDBMS參數的設置(對於具有WORKAREA_SIZE_POLICY = AUTO的Oracle PGA_AGGREGATE_TARGET或 如果WORKAREA_SIZE_POLICY = MANUAL,則爲SORT_AREA_SIZE和SOR_AREA_RETAINED_SIZE。

各種join

powered by zhengkai.blog.csdn.net

  • left join(左聯接) :返回包括左表中的所有記錄和右表中聯結字段相等的記錄
  • right join(右聯接):返回包括右表中的所有記錄和左表中聯結字段相等的記錄
  • inner join(等值連接) :只返回兩個表中聯結字段相等的行
  • A left join B = B right join A
  • CROSS JOIN : 笛卡爾乘積(所有可能的行對)
  • LEFT OUTER JOIN(左外連接) : A表滿足條件的行,和B表的所有行
  • RIGHT OUTER JOIN(右外連接) : B表滿足條件的行,和A表的所有行
  • FULL OUTER JOIN(全連接) : AB表所有的行

sql join表

在這裏插入圖片描述

發佈了296 篇原創文章 · 獲贊 416 · 訪問量 116萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章