1. 程式人生 > 資料庫 >Oracle中sql語句(+)符號代表連線的使用講解

Oracle中sql語句(+)符號代表連線的使用講解

oracle中sql語句(+)符號代表連線

(+)在=前邊為右連線

(+)在=後邊為左連線

SELECT a.*,b.* from a(+) = b就是一個右連線,等同於select a.*,b.* from a right join b
SELECT a.*,b.* from a = b(+)就是一個左連線,等同於select a.*,b.* from a left join b

內連線

  • 常用的連線運算子=、<、>
  • 使用比較運算子根據每個表共有的列的值匹配兩個表中的行

外連線

左連線

LEFT JOIN 或LEFT OUTER JOIN
列出左表中的所有行,若左表中某行在右表中沒有匹配的行,則左表該行輸出,右表該行為空

右連線

RIGHT JOIN 或RIGHT OUTER JOIN
列出右表中的所有行,如右表中某行在左表中沒有匹配的行,則右表該行輸出,左表該行為空

全連線

FULL JOIN 或FULL OUTER JOIN
對兩表中的所有資料
當左表中的某行在右中沒有匹配的行,左表該行輸出,右表該行為空
當右表中的某行在左表中沒有匹配的行,右表該行輸出,左表該行為空

例子:

-------------------------------------------------
 a表  id name  b表  id job parent_id 
    1 張3   1  23  1 
    2 李四   2  34  2 
    3 王武   3  34  4  
 a.id同parent_id 存在關係 
-------------------------------------------------- 

內連線

select a.*,b.* from a inner join b on a.id=b.parent_id
 1 張3   1  23  1 
 2 李四   2  34  2

左連線

select a.*,b.* from a left join b on a.id=b.parent_id
 1 張3   1  23  1 
 2 李四   2  34  2
 3 王武   null 

右連線

select a.*,b.* from a right join b on a.id=b.parent_id
 1 張3   1  23  1 
 2 李四   2  34  2
 null    3  34  4 

全連線

select a.*,b.* from a full join b on a.id=b.parent_id
 1 張3   1  23  1 
 2 李四   2  34  2
 null    3  34  4 
 3 王武   null

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支援。如果你想了解更多相關內容請檢視下面相關連結