日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Oracle SQL語句(連接查詢)

 昵稱5720961 2011-02-18

Oracle SQL語句(連接查詢)

文章分類:數(shù)據(jù)庫

一、內(nèi)連接和外連接
   內(nèi)連接用于返回滿足連接條件的記錄;而外連接則是內(nèi)連接的擴(kuò)展,它不僅會(huì)滿足連接條件的記錄,而且還會(huì)返回不滿足連接條件的記錄,語法如下:
  

Oracle代碼

 

Oracle代碼 復(fù)制代碼
  1. select table1.column,table2.column from table1 [inner|left|right|full]join table2 on table1.column=table2.column;  


inner join表示內(nèi)連接、left join表示左外連接、right join表示右外連接、full join表示全連接;on用于指定連接條件。
注意:如果使用form內(nèi)、外連接,則必須使用on操作符指定連接條件;如果使用(+)操作符連接,則必須使用where指定連接條件。

1、內(nèi)連接
   內(nèi)連接查詢返回滿足條件的所有記錄,默認(rèn)情況下沒有指定任何連接則為內(nèi)連接,例如:

Oracle代碼
Oracle代碼 復(fù)制代碼
  1. select t1.name,t2.name from cip_temps t1 inner join cip_tmp t2 on t1.ID=t2.id;  


2、左外連接
左外連接查詢不僅返回滿足條件的所有記錄,而且還會(huì)返回不滿足連接條件的連接操作符左邊表的其他行,例如:

Oracle代碼
Oracle代碼 復(fù)制代碼
  1. select t1.name,t2.name from cip_temps t1 left join cip_tmp t2 on t1.ID=t2.id;  


3、右外連接
右外連接查詢不僅返回滿足調(diào)價(jià)的所有記錄,而且還會(huì)返回不滿足連接條件的連接操作符右邊表的其他行,例如:

Oracle代碼

 

Oracle代碼 復(fù)制代碼
  1. select t1.name,t2.name from cip_temps t1 right join cip_tmp t2 on t1.ID=t2.id;  


4、全連接
全連接查詢不僅返回滿足調(diào)價(jià)的所有記錄,而且還會(huì)返回不滿足連接條件的其他行,例如:

Oracle代碼

 

Oracle代碼 復(fù)制代碼
  1. select t1.name,t2.name from cip_temps t1 full join cip_tmp t2 on t1.ID=t2.id;  


5、(+)操作符
在oracle9i之前,當(dāng)執(zhí)行外連接時(shí),都是使用連接操作符(+)來完成的,盡管可以使用操作符(+)執(zhí)行外連接操作,但是oracle9i開始oracle建議使用outer join執(zhí)行外連接,使用(+)操作符執(zhí)行外連接的語法如下:

Oracle代碼

 

Oracle代碼 復(fù)制代碼
  1. select table1.column,table2.column from table1,table2 where table1.column(+)=table2.column;  


注意:

  • 當(dāng)使用(+)操作符執(zhí)行外連接時(shí),應(yīng)當(dāng)將該操作符放在顯示較少行(完全滿足連接條件行)一端。
  • (+)操作符只能出現(xiàn)在where子句中,并且不能與outer join語法同時(shí)使用。
  • 當(dāng)使用(+)操作符執(zhí)行外連接時(shí),如果在where語句中包含多個(gè)條件,則必須在所有的條件中都包含(+)操作符。
  • (+)操作符只能適用于列,而不能適用于表達(dá)式。
  • (+)操作符不能與or和in操作符一起使用。
  • (+)操作符只能用于左外連接和右外連接,不能用于實(shí)現(xiàn)完全連接。


(1)、使用(+)操作符執(zhí)行左外連接
當(dāng)使用左外連接時(shí),不僅會(huì)返回滿足連接條件的所有行,而且還會(huì)返回不滿足連接條件的左邊邊的其他行。因?yàn)?+)操作符要放到行數(shù)較少的一端,所以在where子句中應(yīng)當(dāng)將該操作符放到右邊表的一端,示例如下:

Oracle代碼

 

Oracle代碼 復(fù)制代碼
  1. select t1.name,t2.name from cip_temps t1,cip_tmp t2 where t1.ID=t2.id(+);  


(2)、使用(+)操作符執(zhí)行右外連接
當(dāng)使用右外連接時(shí),不僅會(huì)返回滿足連接條件的所有行,而且還會(huì)返回不滿足連接條件的右邊邊的其他行。因?yàn)?+)操作符要放到行數(shù)較少的一端,所以在where子句中應(yīng)當(dāng)將該操作符放到左邊表的一端,示例如下:

Oracle代碼
Java代碼 復(fù)制代碼
  1. select t1.name,t2.name from cip_temps t1,cip_tmp t2 where t1.ID(+)=t2.id;    
 注:LEFT   JOIN   =   LEFT   OUTER   JOIN   左連接等于左外連接 
       RIGHT  JOIN   =   RIGHT   OUTER   JOIN  
        FULL   JOIN   =   FULL   OUTER   JOIN

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多