Cartestion Product(카테이션 프로덕트, 곱)
조인 쿼리의 2테이블이 조인 조건을 가지고 있지 않으면 오라클은 카테이션 프로덕트(곱)을 리턴한다.
오라클은 서로서로 각 열과 다른 테이블의 각 열과 결합한다.
예시)
SELECT * FROM emp, dept;
emp의 열의 수가 14개, dept의 열의 수가 4개이므로 14X4를 수행하여 56개의 열이 리턴된다.
테이블 조인
2개 이상의 테이블을 연관시키는 연산.
주로 WHERE 구문에 조인 조건을 적는다.
조인 조건은 주로 각 테이블의 주키와 외래키로 구성된다.
예시)
SELECT * FROM emp, dept WHERE emp.deptno = dept.deptno;
테이블 조인 형태
오라클 용어 : 카테이션 프로덕트, Equijoin : 같다는 조건 ('='), Non-equijoin : 같지 않은 조건
Outer join : 외부 조인, NULL도 포함, Self join : 같은 테이블 2개를 조인.
ANSI용어 : Cross join, Natural Join, Join Using, Join on, Right(Left, Full) Outer Join
Equijoin
조인 조건에서 같다는 비교 연산자를 사용하여 두개 이상 관련된 테이블로부터 데이터를 얻는 쿼리.
n개의 테이블에 대해 n-1의 조인 조건이 필요하다.
Non-equijoin
조인 조건에서 같다는 조건 이외의 연산자를 사용하여 두개 이상 관련된 테이블로부터 데이터를 얻는 쿼리.
Outer join
WHERE절에 (+)를 사용한다.
(+)가 없는 열에 대한 모든 정보를 보여준다. (+)가 있는 열에 NULL을 포함해서 보여준다.
오라클에서는 (+)가 양쪽 컬럼 모두 있을 수 없다.
<ANSI 문법>
※ WHERE절이 없다. 조인 조건을 분리해서 쓸 수 있다.
사용법 : SELECT 열 FROM 테이블1 (조인조건) 테이블2
OUTER JOIN
- LEFT OUTER JOIN : 왼쪽 테이블을 기준으로 조인한다. 왼쪽 열에 대한 정보가 모두 나오며 오른쪽 테이블 열에 대한 값이 NULL이 나올 수 있다.
- RIGHT OUTER JOIN : 오른쪽 테이블을 기준으로 조인한다.
- FULL OUTER JOIN : 양쪽 테이블 모두 NULL을 포함하여 조인한다.
NATURAL JOIN
같은 이름을 가진 모든 컬럼을 조인조건으로 사용
a JOIN b using(열이름)
같은 이름을 가진 컬럼 중 using에 사용한 컬럼을 조인 조건으로 사용
a JOIN b on (조건식)
조인 조건의 컬럼이름이 각 테이블에 대해서 다를 때 on 사용
예시)
SELECT ename, dmane, d.deptno from emp e JOIN dept d on(e.deptno = d.???)
'컴퓨터 공부 > Advanced Database' 카테고리의 다른 글
[5월 28일 1교시] 그룹 함수 1 (0) | 2009.05.28 |
---|---|
[5월 27일 3교시] 조인 2 (0) | 2009.05.27 |
[5월 27일 1교시] SQL 함수 3(그림) (0) | 2009.05.27 |
[5월 26일 3교시] SQL 함수 2 (0) | 2009.05.26 |
[5월 26일 2교시] 기본 쿼리 4 + SQL 함수 1 (0) | 2009.05.26 |