Oracle连接查询
一、內連接和外連接?
?? 內連接用于返回滿足連接條件的記錄;而外連接則是內連接的擴展,它不僅會滿足連接條件的記錄,而且還會返回不滿足連接條件的記錄,語法如下:?
??
inner join表示內連接、left join表示左外連接、right join表示右外連接、full join表示全連接;on用于指定連接條件。?
注意:如果使用form內、外連接,則必須使用on操作符指定連接條件;如果使用(+)操作符連接,則必須使用where指定連接條件。?
1、內連接?
?? 內連接查詢返回滿足條件的所有記錄,默認情況下沒有指定任何連接則為內連接,例如:
2、左外連接?
左外連接查詢不僅返回滿足條件的所有記錄,而且還會返回不滿足連接條件的連接操作符左邊表的其他行,例如:
3、右外連接?
右外連接查詢不僅返回滿足調價的所有記錄,而且還會返回不滿足連接條件的連接操作符右邊表的其他行,例如:
4、全連接?
全連接查詢不僅返回滿足調價的所有記錄,而且還會返回不滿足連接條件的其他行,例如:
5、(+)操作符?
在oracle9i之前,當執行外連接時,都是使用連接操作符(+)來完成的,盡管可以使用操作符(+)執行外連接操作,但是oracle9i開始oracle建議使用outer join執行外連接,使用(+)操作符執行外連接的語法如下:
注意:
- 當使用(+)操作符執行外連接時,應當將該操作符放在顯示較少行(完全滿足連接條件行)一端。
- (+)操作符只能出現在where子句中,并且不能與outer join語法同時使用。
- 當使用(+)操作符執行外連接時,如果在where語句中包含多個條件,則必須在所有的條件中都包含(+)操作符。
- (+)操作符只能適用于列,而不能適用于表達式。
- (+)操作符不能與or和in操作符一起使用。
- (+)操作符只能用于左外連接和右外連接,不能用于實現完全連接。
(1)、使用(+)操作符執行左外連接?
當使用左外連接時,不僅會返回滿足連接條件的所有行,而且還會返回不滿足連接條件的左邊邊的其他行。因為(+)操作符要放到行數較少的一端,所以在where子句中應當將該操作符放到右邊表的一端,示例如下:
(2)、使用(+)操作符執行右外連接?
當使用右外連接時,不僅會返回滿足連接條件的所有行,而且還會返回不滿足連接條件的右邊邊的其他行。因為(+)操作符要放到行數較少的一端,所以在where子句中應當將該操作符放到左邊表的一端,示例如下:
select?t1.name,t2.name?from?cip_temps?t1,cip_tmp?t2?where?t1.ID(+)=t2.id;
總結
以上是生活随笔為你收集整理的Oracle连接查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 限制oracle数据库表的输出记录条数
- 下一篇: ABAP更改程序的请求包操作