一、內連線和外連線
內連線用於返回滿足連線條件的記錄;而外連線則是內連線的擴充套件,它不僅會滿足連線條件的記錄,而且還會返回不滿足連線條件的記錄,語法如下:
oracle**
1.
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用於指定連線條件。
注意:如果使用from內、外連線,則必須使用on操作符指定連線條件;如果使用(+)操作符連線,則必須使用where指定連線條件。
1、內連線
內連線查詢返回滿足條件的所有記錄,預設情況下沒有指定任何連線則為內連線,例如:
oracle**
1.
select t1.name,t2.name from cip_temps t1 inner join cip_tmp t2 on t1.id=t2.id;
2、左外連線
左外連線查詢不僅返回滿足條件的所有記錄,而且還會返回不滿足連線條件的連線操作符左邊表的其他行,例如:
oracle**
1.
select t1.name,t2.name from cip_temps t1 left join cip_tmp t2 on t1.id=t2.id;
3、右外連線
右外連線查詢不僅返回滿足調價的所有記錄,而且還會返回不滿足連線條件的連線操作符右邊表的其他行,例如:
oracle**
1.
select t1.name,t2.name from cip_temps t1 right join cip_tmp t2 on t1.id=t2.id;
4、全連線
全連線查詢不僅返回滿足調價的所有記錄,而且還會返回不滿足連線條件的其他行,例如:
oracle**
1.
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**
1.
select table1.column,table2.column from table1,table2 where table1.column(+)=table2.column;
注意:· 當使用(+)操作符執行外連線時,應當將該操作符放在顯示較少行(完全滿足連線條件行)一端。
·
(+)操作符只能出現在where子句中,並且不能與outer join語法同時使用。
· 當使用(+)操作符執行外連線時,如果在where語句中包含多個條件,則必須在所有的條件中都包含(+)操作符。
·
(+)操作符只能適用於列,而不能適用於表示式。
·
(+)操作符不能與or和in操作符一起使用。
·
(+)操作符只能用於左外連線和右外連線,不能用於實現完全連線。
(1)、使用(+)操作符執行左外連線
當使用左外連線時,不僅會返回滿足連線條件的所有行,而且還會返回不滿足連線條件的左邊邊的其他行。因為(+)操作符要放到行數較少的一端,所以在where子句中應當將該操作符放到右邊表的一端,示例如下:
oracle**
1.
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;
Java 中幾種查詢演算法
順序查詢 說明 順序查詢適合於儲存結構為順序儲存或鏈結儲存的線性表。int sequelsearch elemtype s,keytype key,int n 在s 0 s n 1 中順序查詢關鍵字為key的記錄 查詢成功時返回該記錄的下標序號 失敗時返回 1 二分查詢 1 遞迴方法實現 int b...
小議Java中幾種Singleton模式實現的優劣
本文根據自身的學習和使用,總結出了5種實現singleton的方法,並對他們的優缺點進行了簡單的總結。第一種 最常用型,如下 public class singleton1 private static singleton1 instance null private singleton1 publ...
JAVA中的幾種內部類
內部類 inner class 就是定義在另外乙個類裡面的類。與之對應,包含內部類的類被稱為外部類。內部類可分為以下幾種 內部類中最常見的就是成員內部類,也稱為普通內部類。我們來看如下 public class helloworld 測試成員內部類 public static void main s...