sql1999標準提供了一套關於表連線的語法。下面我們以oracle scott賬戶下的emp和dept表為例,說明其用法:
1.cross join:自然連線。主要用於產生笛卡爾積。
sql**
select * from emp cross join dept;
select * from emp cross join dept;2.natural join:自然連線。這種情況下,資料庫會自動找到乙個欄位來消除笛卡爾積。一般來說,資料庫會找那些通過外來鍵約束關聯的字段。因此,有較大的侷限性。
sql**
select * from emp natural join dept;
select * from emp natural join dept;
3.join...using(字段)自定義關聯欄位來消除笛卡爾積
sql**
select * from emp join dept using(deptno);
select * from emp join dept using(deptno);4.join...on(關聯條件):自定義用來消除笛卡爾積的關聯條件
sql**
select * from emp join dept on(emp.deptno=dept.deptno);
select * from emp join dept on(emp.deptno=dept.deptno);5.left outer join:左(外)連線:以左邊的表資料作為參考
sql**
select * from emp left outer join dept on(emp.deptno=dept.deptno);
select * from emp left outer join dept on(emp.deptno=dept.deptno);
6.right outer join:右(外)連線,以右邊表的資料作為參考
sql**
select * from emp right outer join dept on(emp.deptno=dept.deptno);
select * from emp right outer join dept on(emp.deptno=dept.deptno);
7.full outer join:全(外)連線,將兩張表中沒有的資料都顯示
sql**
select * from emp full outer join dept on(emp.deptno=dept.deptno);
select * from emp full outer join dept on(emp.deptno=dept.deptno); 此外,在oracle中提供了獨有的(+)語法來表示左右連線。分別對應於上面的情況5、6。
對應於情況5的(+)語法:
sql**
select * from emp,dept where emp.deptno=dept.deptno(+);
select * from emp,dept where emp.deptno=dept.deptno(+);對應於情況6的(+)語法:
sql**
select * from emp,dept where emp.deptno(+)=dept.deptno;
select * from emp,dept where emp.deptno(+)=dept.deptno;
摘自 wawlian
Oracle 多表連線(SQL 1999標準)
1.語法 select table1.column,table2.column from table1 別名1 這一格必須寫的,下面的都是可寫可不寫 cross join table2 交叉連線,等價於oracle的笛卡爾積 natural join table2 自然連線,等價於oracle的等值...
ORA 06413 連線未開啟錯誤
今天同事打 給我,反映有乙個工具連線oracle資料庫的時候提示 ora 06413連線未開啟錯誤 pl sql sqlplus 其它應用程式均可以正常登陸。之前沒有遇到這樣的錯誤,於是在oracle錯誤資訊中找到下面相關解釋 ora 06413 connection not open.cause ...
07連線與閘道器
可以設定流程連線中的id和name,設定連線上的main config中的條件可以決定走哪一條分支。當上一節點完成任務時,需要帶入流程變數,來控制流程的走向。其實閘道器說白了就是事件流到某乙個核心節點,該節點需要做乙個判斷,如果判斷符合某乙個邏輯,那麼事件就流到合適的路徑上去,進行了分支。而做判斷的...