日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Oracle连接查询

發(fā)布時(shí)間:2025/3/20 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle连接查询 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

Oracle代碼 ?
  • 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代碼 ?
  • select?t1.name,t2.name?from?cip_temps?t1?inner?join?cip_tmp?t2?on?t1.ID=t2.id;??

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

    Oracle代碼 ?
  • 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代碼 ?
  • 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代碼 ?
  • 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開始o(jì)racle建議使用outer join執(zhí)行外連接,使用(+)操作符執(zhí)行外連接的語(yǔ)法如下:

    Oracle代碼 ?
  • 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語(yǔ)法同時(shí)使用。
    • 當(dāng)使用(+)操作符執(zhí)行外連接時(shí),如果在where語(yǔ)句中包含多個(gè)條件,則必須在所有的條件中都包含(+)操作符。
    • (+)操作符只能適用于列,而不能適用于表達(dá)式。
    • (+)操作符不能與or和in操作符一起使用。
    • (+)操作符只能用于左外連接和右外連接,不能用于實(shí)現(xiàn)完全連接。


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

    Oracle代碼 ?
  • 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代碼 ?

    select?t1.name,t2.name?from?cip_temps?t1,cip_tmp?t2?where?t1.ID(+)=t2.id;

    總結(jié)

    以上是生活随笔為你收集整理的Oracle连接查询的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。