두 개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법
테이블을 연결하려면, 적어도 하나의 칼럼을 서로 공유하고 있어야 하므로 이를 이용하여 데이터 검색에 활용한다.
INNER JOIN
OUTER JOIN
매칭된 튜플들뿐만 아니라 매칭되지 않은 튜플들도 반환
매칭되지 않은 테이블의 값은 NULL로 처리 ⇒ 이를 이용해 차집합 구현 가능
3 개 이상의 테이블 값을 JOIN 할 때도 사용
// 'MIKE'의 주문 정보 + 주문자 이름 + 상품명
SELECT O.*, C.CUST_NAME, P.PRODUCT_NAME
FROM TB_ORDER O
LEFT OUTER JOIN TB_CUST C ON O.CUST_NO = C.CUST_NO
LEFT OUTER JOIN TB_PRODUCT P ON O.PRODUCT_NO = P.PRODUCT_NO
WHERE
C.CUST_NAME = 'MIKE'
CROSS JOIN (CARTESIAN PRODUCT)
모든 경우의 수를 전부 표현해주는 방식이다.
A가 3개, B가 4개면 총 3*4 = 12개의 데이터가 검색된다.
SELECT
A.NAME, B.AGE
FROM EX_TABLE A
CROSS JOIN JOIN_TABLE B
SELF JOIN
자기자신과 자기자신을 조인하는 것이다.
하나의 테이블을 여러번 복사해서 조인한다고 생각하면 편하다.
자신이 갖고 있는 칼럼을 다양하게 변형시켜 활용할 때 자주 사용한다.
SELECT
A.NAME, B.AGE
FROM EX_TABLE A, EX_TABLE B
Catesian Product
연산 후 조건(등호, 부등호)과 일치하는 튜플의 결과를 가져오면 = 세타 조인
세타조인
중 조건으로 등호 연산을 사용하면 = 동등조인
동등조인
중에서 겹치는 필드를 제외하면 = 자연조인