JOIN
- 두 개 이상의 테이블에서 데이터를 조회하고자 할 때 사용하는 구문이다.
1. 등가 조인(EQUAL JOIN) / 내부 조인(INNER JOIN)
- 연결시키는 컬럼의 값이 일치하는 행들만 조인되서 조회한다.(일치하는 값이 없는 행은 조회 X)
1) 오라클 전용 구문
[표현법]
SELECT 컬럼, 컬럼, …
FROM 테이블1, 테이블2
WHERE 테이블1.컬럼명 = 테이블2.컬럼명;
- FROM 절에 조회하고자 하는 테이블들을 콤마(,)로 구분하여 나열한다.
- WHERE 절에 매칭 시킬 컬럼명에 대한 조건을 제시한다.
2) ANSI 표준 구문
[표현법]
SELECT 컬럼, 컬럼, …
FROM 테이블
[INNER] JOIN 테이블2 ON (테이블1.컬럼명 = 테이블2.컬럼명);
- FROM 절에 기준이 되는 테이블을 기술한다.
- JOIN 절에 같이 조회하고자 하는 테이블을 기술 후 매칭 시킬 컬럼에 대한 조건을 기술한다.
- 연결에 사용하려는 컬럼명이 같은 경우 ON 구문 대신에 USING(컬럼명) 구문을 사용한다.
다중 JOIN
- 여러 개의 테이블을 조인하는 경우에 사용한다.
외부 조인(OUTER JOIN)
- 테이블 간의 JOIN 시 일치하지 않는 행도 포함시켜서 조회가 가능하다.
- 단, 반드시 기준이되는 테이블(ANSI), 컬럼(오라클)을 지정해야 한다.(LEFT/RIGHT/(+))
*E.DEPT_CODE = D.DEPT_ID에 매칭되는 정보가 없어도 EMPLOYEE 테이블의 해당 컬럼 정보를 모두 가지고 온다.
카테시안 곱(CATESIAN PRODUCT) / 교차 조인(CROSS JOIN)
- 조인되는 모든 테이블의 각 행들이 서로서로 모두 매핑된 데이터가 검색된다.
- 테이블의 행들이 모두 곱해진 행들의 조합이 출력 -> 과부하의 위험이 있다.
비등가 조인(NON EQUAL JOIN)
- 조인 조건에 등호(=)를 사용하지 않는 조인문을 비등가 조인이라고 한다.
- 지정한 컬럼 값이 일치하는 경우가 아닌, 값의 범위에 포함되는 행들을 연결하는 방식이다.
- (= 이외에 비교 연산자, >, <. >=, <=, BETWEEN AND, IN, NOT IN 등을 사용한다.)
- ANSI 구문으로는 JOIN ON 구문으로만 사용이 가능하다. (USING 사용 불가)
자체 조인(SELF JOIN)
- 같은 테이블을 다시 한번 조인하는 경우에 사용한다.