표준 JOIN
표준 join
- ANSI 표준으로 작성되는 조인
- INNER / CROSS / NATURAL / OUTER
순수관계연산자
- 선택, 투영, 합집합, 차집합, 곱집합으로
관계를 입력받아 관계를 출력하는 관계대수의 기본 연산자
| 연산자 | 기호 | 의미 | SQL 대응 |
|---|
| 선택 | σ (Selection) | 행 선택 | WHERE |
| 투영 | π (Projection) | 열 선택 | SELECT |
| 합집합 | ∪ (Union) | 두 관계 결합 | UNION |
| 차집합 | − (Difference) | 한쪽만 남김 | MINUS / EXCEPT |
| 곱집합 | × (Cartesian Product) | 모든 조합 | CROSS JOIN |
+) DIVIDE는 이제 안 쓴다.
INNER 조인
- 내부 조인. 조건이 일치하는 교집합만 보여줌
- 오라클은
=, ANSI는 USING이나 ON 사용
ON
- 양쪽의 컬럼으로 조인
- 컬럼명 달라도 OK
- 컬럼명 같으면 테이블 명시
USING
- 컬럼명이 같은 컬럼끼리 조인
- AS 사용 불가
- SQL Server는 사용 불가
SELECT NAME, 테이블1.나이, 테이블2.직급
FROM 테이블1
JOIN 테이블2
USING NAME
-> 이름으로 조인
NATURAL 조인
- 같은 이름,데이터형,도메인인 컬럼들로 EQUI JOIN
- NATURAL 조인쓰면 USING,ON,WHERE에서 join 조건 정의 불가
- SQL Server는 사용 불가
- as와 테이블명 (접두사) 사용 불가
CROSS 조인
- 테이블간 JOIN 조건이 없을 때 가능한 모든 데이터의 조합
-> 테이블1이 3개의 행을 가지고 테이블2가 2개 가지면 총 6개가 나옴
OUTER 조인
- LEFT OUTER JOIN : 왼쪽 테이블 기준으로 오른쪽을 더함
- RIGHT OUTER JOIN : 오른쪽 테이블 기준으로 왼쪽을 더함
- FULL OUTER JOIN : 모든 데이터 결합
- 일치 값 없으면 null로 됨
- 오라클에서는 UNION으로 구현 가능. (단, 중복은 1개만 반환됨)