Tip) 집합 연산자: 두 개 이상의 select문의 결과 값을 세로로 연결한 것이고, 조인: 두 개 이상의 테이블을 가로로 연결한 것이다
equi join 등가 조인
: 각 테이블의 일치한 데이터를 기준으로 조인
≒ inner join내부 조인, simple단순 조인
1) 열 이름을 비교하는 조건식
SELECT * FROM A, B WHERE A.NO = B.NO ORDER BY A.ALPHABET;
2) 별칭 사용
SELECT A.NO, A.NAME, B.NO, B.NAME FROM APPLE A, BUBBLE B WHERE A.NO = B.NO;
non-equi join 비등가 조인
: 각 테이블의 관계를 기반으로 조인, BETWEEN A AND B 연산자 활용!
ex)
--곡률
SELECT * FROM APPLE A, BUBBLE B WHERE [A.curvature] BETWEEN B.FIRST AND B.SECOND;
self join 자체 조인
: 하나의 테이블이지만 별칭을 줘서 다른 테이블인 것처럼 명시하여 조인
SELECT A1.NO, A1.NAME, A2.NO AS B_NO, A2.NAME AS B_NAME FROM APPLE A1, APPLE A2 WHERE A.CURVATION = B.CURVATION;
outer join 외부 조인
: 조인 중에 열의 어느 한 쪽이 NULL이어도 강제 출력
왼쪽 외부 조인 | WHERE TABLE1.COL1 = TABLE2.COL1(+) |
오른쪽 외부 조인 | WHERE TABLE1.COL1(+) = TABLE2.COL2 |
SQL-99 표준 문법에서 join
OUTER JOIN
왼쪽 외부 조인 (Left Outer Join) |
기존 | WHERE TABLE1.COL1 = TABLE2.COL1(+) |
SQL-99 | FROM TABLE1 LEFT OUTER JOIN TABLE2 ON | |
오른쪽 외부 조인 (Right Outer Join) |
기존 | WHERE TABLE1.COL(+) = TABLE2.COL1 |
SQL-99 | FROM TABLE1 RIGHT OUTER JOIN TABLE2 ON | |
전체 외부 조인 (Full Outer Join) |
기존 | UNION 집합 연산자 활용 (기존 문법 X) |
SQL-99 | FROM TABLE1 FULL OUTER JOIN TABLE2 ON |
* SQL-99의 예시들은 모두 조인 조건식임