日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle语句连接查询

發布時間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle语句连接查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、內連接和外連接
???內連接用于返回滿足連接條件的記錄;而外連接則是內連接的擴展,它不僅會滿足連接條件的記錄,而且還會返回不滿足連接條件的記錄,語法如下:?

Oracle代碼?
  • select?table1.column,table2.column?from?table1?[inner|left|right|full]join?table2?on?table1.column=table2.column;??

  • select table1.column,table2.column from table1 [inner|left|right|full]join table2 on table1.column=table2.column;
    inner?join表示內連接、left?join表示左外連接、right?join表示右外連接、full?join表示全連接;on用于指定連接條件。?
    注意:如果使用form內、外連接,則必須使用on操作符指定連接條件;如果使用(+)操作符連接,則必須使用where指定連接條件。

    1、內連接
    ???內連接查詢返回滿足條件的所有記錄,默認情況下沒有指定任何連接則為內連接,例如:?
    Oracle代碼?
  • select?t1.name,t2.name?from?cip_temps?t1?inner?join?cip_tmp?t2?on?t1.ID=t2.id;??

  • select t1.name,t2.name from cip_temps t1 inner join cip_tmp t2 on t1.ID=t2.id;
    2、左外連接
    左外連接查詢不僅返回滿足條件的所有記錄,而且還會返回不滿足連接條件的連接操作符左邊表的其他行,例如:?
    Oracle代碼?
  • select?t1.name,t2.name?from?cip_temps?t1?left?join?cip_tmp?t2?on?t1.ID=t2.id;??

  • select t1.name,t2.name from cip_temps t1 left join cip_tmp t2 on t1.ID=t2.id;
    3、右外連接
    右外連接查詢不僅返回滿足調價的所有記錄,而且還會返回不滿足連接條件的連接操作符右邊表的其他行,例如:?
    Oracle代碼?
  • select?t1.name,t2.name?from?cip_temps?t1?right?join?cip_tmp?t2?on?t1.ID=t2.id;??

  • select t1.name,t2.name from cip_temps t1 right join cip_tmp t2 on t1.ID=t2.id;
    4、全連接
    全連接查詢不僅返回滿足調價的所有記錄,而且還會返回不滿足連接條件的其他行,例如:?
    Oracle代碼?
  • select?t1.name,t2.name?from?cip_temps?t1?full?join?cip_tmp?t2?on?t1.ID=t2.id;??

  • select t1.name,t2.name from cip_temps t1 full join cip_tmp t2 on t1.ID=t2.id;
    5、(+)操作符
    在oracle9i之前,當執行外連接時,都是使用連接操作符(+)來完成的,盡管可以使用操作符(+)執行外連接操作,但是oracle9i開始oracle建議使用outer?join執行外連接,使用(+)操作符執行外連接的語法如下:?
    Oracle代碼?
  • select?table1.column,table2.column?from?table1,table2?where?table1.column(+)=table2.column;??

  • select table1.column,table2.column from table1,table2 where table1.column(+)=table2.column;
    注意:?
    • 當使用(+)操作符執行外連接時,應當將該操作符放在顯示較少行(完全滿足連接條件行)一端。?

    • (+)操作符只能出現在where子句中,并且不能與outer?join語法同時使用。?

    • 當使用(+)操作符執行外連接時,如果在where語句中包含多個條件,則必須在所有的條件中都包含(+)操作符。?

    • (+)操作符只能適用于列,而不能適用于表達式。?

    • (+)操作符不能與or和in操作符一起使用。?

    • (+)操作符只能用于左外連接和右外連接,不能用于實現完全連接。?


    (1)、使用(+)操作符執行左外連接
    當使用左外連接時,不僅會返回滿足連接條件的所有行,而且還會返回不滿足連接條件的左邊邊的其他行。因為(+)操作符要放到行數較少的一端,所以在where子句中應當將該操作符放到右邊表的一端,示例如下:?
    Oracle代碼?
  • select?t1.name,t2.name?from?cip_temps?t1,cip_tmp?t2?where?t1.ID=t2.id(+);??

  • select t1.name,t2.name from cip_temps t1,cip_tmp t2 where t1.ID=t2.id(+);
    (2)、使用(+)操作符執行右外連接
    當使用右外連接時,不僅會返回滿足連接條件的所有行,而且還會返回不滿足連接條件的右邊邊的其他行。因為(+)操作符要放到行數較少的一端,所以在where子句中應當將該操作符放到左邊表的一端,示例如下:?
    Oracle代碼?
  • select?t1.name,t2.name?from?cip_temps?t1,cip_tmp?t2?where?t1.ID(+)=t2.id;?

  • ?

    轉載于:https://blog.51cto.com/greensky/1336052

    總結

    以上是生活随笔為你收集整理的Oracle语句连接查询的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。