Oracle的左連線和右連線
PL-SQL中,左連線和右連線以如下方式來實現
檢視如下語句:
Sql程式碼
SELECT emp_name, dept_name FORM. Employee, Department WHERE Employee.emp_deptid(+) = Department.deptid
此SQL文使用了右連線,即“(+)”所在位置的另一側為連線的方向,右連線說明等號右側的所有記錄均會被顯示,無論其在左側是否得到匹配,也就是說上例中無論會不會出現某個部門沒有一個員工的情況,這個部門的名字都會在查詢結果中出現。
反之:
Sql程式碼
SELECT emp_name, dept_name FORM. Employee, Department WHERE Employee.emp_deptid = Department.deptid(+)
則是左連線,無論這個員工有沒有一個能在Department表中得到匹配的部門號,這個員工的記錄都會被顯示
一般的相等連線:
Sql程式碼
select * from a, b where a.id = b.id;
這個就屬於內連線。
對於外連線:
Oracle中可以使用“(+) ”來表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN
LEFT OUTER JOIN:左外關聯
Sql程式碼
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);
等價於
Sql程式碼
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:右外關聯
Sql程式碼
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);
等價於
Sql程式碼
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:全外關聯
Sql程式碼
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的員工記錄和沒有任何員工的部門記錄。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28673746/viewspace-757824/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle左連線,右連線Oracle
- 左連線和右連線
- 左連線,右連線
- SQL中的左連線和右連線SQL
- 內連線、左連線、右連線
- 左連線與右連線
- 【SQL】Oracle的內連線、左外連線、右外連線及全外連線SQLOracle
- pl/sql裡的左連線和右連線符號“+”SQL符號
- Oracle左外連線、右外連線、完全外連線以及(+)號用法Oracle
- Oracle 左外連線、右外連線、全外連線小總結Oracle
- oracle sql內連線_左(右)連線_全外連線_幾種寫法OracleSQL
- MYSQL語法:左連線、右連線、內連線、全外連線MySql
- SQL的四種連線:內連線 左外連線 右外連線 全連線SQL
- mysql 左連線,右連線,內連結,exists等MySql
- 深入理解SQL的四種連線-左外連線、右外連線、內連線、全連線SQL
- mysql INNER JOIN、LEFT JOIN、RIGHT JOIN;內連線(等值連線)、左連線、右連線MySql
- sql和hql中join語句區別,以及hibernate中內連線,迫切內連線,左外連線,迫切左外連線,右外連線的區別(合集)...SQL
- 內聯,左外聯,右外聯,全連線,交叉連線 的區別
- Oracle內連線、外連線、右外連線、全外連線小總結Oracle
- 深入淺出SQL之左連線、右連線和全連線SQL
- mysql左外連線MySql
- InfoSet中左外連線
- 連線和半連線
- Oracle(+)連線與Join連線Oracle
- Oracle專有(dedicated)連線和共享(shared)連線Oracle
- Socket連線和Http連線HTTP
- 長連線和短連線
- ORACLE 半連線與反連線Oracle
- 長連線和短連線的使用
- http的長連線和短連線HTTP
- Oracle 表連線方式詳解(外連結、內連線、自連線)Oracle
- sql 內連線和外連線SQL
- 等值連線和自然連線的區別
- Oracle的表連線方法(三)雜湊連線Oracle
- [zt] JDBC連線Oracle RAC的連線串配置JDBCOracle
- RMAN連線與oracle連線模式的關係Oracle模式
- oracle bbed的連線Oracle
- oracle中的連線Oracle