一般的相等連線:
select * from a, b where a.id = b.id;
這個就屬於內連線。
對於外連線:
oracle中可以使用「(+) 」來表示,9i可以使用left/right/full outer join
left outer join:左外關聯
select e.last_name, e.department_id, d.department_name
from employees e
left outer join departments d
on (e.department_id = d.department_id);
等價於
select e.last_name, e.department_id, d.department_name
from employees e, departments d
where e.department_id=d.department_id(+)
結果為:所有員工及對應部門的記錄,包括沒有對應部門編號department_id的員工記錄。
right outer join:右外關聯
select e.last_name, e.department_id, d.department_name
from employees e
right outer join departments d
on (e.department_id = d.department_id);
等價於
select e.last_name, e.department_id, d.department_name
from employees e, departments d
where e.department_id(+)=d.department_id
結果為:所有員工及對應部門的記錄,包括沒有任何員工的部門記錄。
full outer join:全外關聯
select e.last_name, e.department_id, d.department_name
from employees e
full outer join departments d
on (e.department_id = d.department_id);
結果為:所有員工及對應部門的記錄,包括沒有對應部門編號department_id的員工記錄和沒有任何員工的部門記錄。
oracle8i是不直接支援完全外連線的語法,也就是說不能在左右兩個表上同時加上(+),下面是在oracle8i可以參考的完全外連線語法
select t1.id,t2.id from table1 t1,table t2 where t1.id=t2.id(+)
union
select t1.id,t2.id from table1 t1,table t2 where t1.id(+)=t2.id
連線型別定義圖示例子
內連線只連線匹配的行
select a.c1,b.c2 from a join b on a.c3 = b.c3;
左外連線
包含左邊表的全部行(不管右邊的表中是否存在與它們匹配的行)以及右邊表中全部匹配的行
select a.c1,b.c2 from a left join b on a.c3 = b.c3;
右外連線
包含右邊表的全部行(不管左邊的表中是否存在與它們匹配的行)以及左邊表中全部匹配的行
select a.c1,b.c2 from a right join b on a.c3 = b.c3;
全外連線
包含左、右兩個表的全部行,不管在另一邊的表中是否存在與它們匹配的行
select a.c1,b.c2 from a full join b on a.c3 = b.c3;
(theta)連線
使用等值以外的條件來匹配左、右兩個表中的行
select a.c1,b.c2 from a join b on a.c3 != b.c3;
交叉連線
生成笛卡爾積——它不使用任何匹配或者選取條件,而是直接將乙個資料來源中的每個行與另乙個資料來源的每個行一一匹配
select a.c1,b.c2 from a,b;
ORACLE 8i,9i 表連線方法全介紹
oracle 8i,9i 表連線方法全介紹 本文大部分內容摘自 ougjaunt的貼子 一般的相等連線 select from a,b where a.id b.id 這個就屬於內連線。對於外連線 oracle中可以使用 來表示,9i可以使用left right full outer join le...
ORACLE9i 表分析指令碼
oracle9i 表分析指令碼 oracle9i 表分析 包含index 的分析指令碼,在aix5.2 ksh 上通過.filename get ana sql.sql set feedback off set echo off set heading off set pagesize 0 set ...
Oracle8i 9i EXP IMP使用經驗
一 8i exp常用選項 1 full,這個用於匯出整個資料庫,在rows n一起使用時,可以匯出整個資料庫的結構。例如 exp sys file db str.dmp log db str.log full y rows n compress y direct y 2 buffer和feedbac...