表的毗连是指在一个SQL语句中经由过程表与表之间的关连,年夜一个或多个表中检索相关的数据,年夜体上表与表之间的毗连首要可分四种,分袂为相等毗连,外毗连,不等毗连和自毗连,本文将首要年夜以下几个典型的例祖菀攀析Oracle表的四种分歧毗连体例:5 y: G% A+ o c, V3 c3 Q
1. 相等毗连
0 [3 |' k2 _! y; n 经由过程两个表具有不异意义的列,可以成立相等毗连前提。
% U3 ^3 _! Y3 T0 T1 W/ f) |: y 只有毗连列上在两个表中都呈现且值相等的行才会呈此刻发芽结不美观中。' T& S" k' S5 M$ i) k7 A
例 发芽员工信息以及对应的员工地址的部门信息;
& j9 [2 c+ v c: _0 R, w2 ^2 ^
! q3 B) d% r- Q8 G6 [1 C& r SELECT * FROM EMP,DEPT; - u0 \/ r5 r- A% r
SELECT * FROM EMP,DEPT - S9 f5 G1 E2 r( r8 u
WHERE EMP.DEPTNO = DEPT.DEPTNO;3 h+ ]( z* ^6 n0 k1 u
REM 显示工资跨越2000的员工信息以及对应的员工的部门名称。
* L0 y% V6 B, R* p 2. 外毗连
6 v+ k l/ s5 m/ v 对于外毗连,Oracle中可以使用“(+)”来暗示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN,下面将配合实例一一介绍。除了显示匹配相等毗连前提的信息之外,还显示无法匹配相等毗连前提的某个表的信息。( V* x2 X5 W) F2 ^* ]
外毗连采用(+)来识别。' G( a8 ]/ T7 I/ S1 [
A) 左前提(+) = 右前提;( l: q& K) ^3 J
代表除了显示匹配相等毗连前提的信息之外,还显示右前提地址的表中无法匹配相等毗连前提的信息。- _- D4 e9 O0 @8 i! [5 h
此时也称为"右外毗连".另一种暗示体例是:
- F% R8 f9 |8 S" N SELECT ... FROM 表1 RIGHT OUTER JOIN 表2 ON 毗连前提
' p+ @( s: b% x! _% }0 m B) 左前提 = 右前提(+);
2 ?2 @' t! S4 H M% x/ s 代表除了显示匹配相等毗连前提的信息之外,还显示左前提地址的表中无法匹配相等毗连前提的信息。
# A2 h- J( b9 ?( X- H 此时也称为"左外毗连".
* C% K5 a, y- M9 Z2 V) ^! b! k! k c SELECT ... FROM 表1 LEFT OUTER JOIN 表2 ON 毗连前提
5 j) J* h3 b7 ?/ I6 w 例 显示员工信息以及所对应的部门信息+ a+ P/ g. |, I4 q/ n
--无法显示没有部门的员工信息 u% A1 ^0 s/ P) T0 f8 u
--无法显示没有员工的部门信息& C$ ^' ~, A. d/ G$ _! M. F, G
2 ? f) u* w8 ?0 U --SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO;3 W6 c" P# ^$ L" g8 ^" s: X
4 a. H( o$ U1 n! r --直接做相等毗连: |