728x90
JOIN
- 2개의 테이블에 대해서 서로 연관되어있는 튜플들을 결합하여 새로운 릴레이션을 반환하는 것을 의미한다.
- 쉽게 말해 2개의 테이블에서 데이터들을 검색하는 방법이다.
1. INNER JOIN
- 2개의 테이블이 모두 가지고 있는 튜플들만 반환하는 방법이다.
- 교집합
SELECT A.name, B.age FROM A INNER JOIN B ON A.ID = B.ID
2. LEFT OUTER JOIN
- JOIN 연산자 왼쪽에 위치한 테이블의 튜플 모두를 반환한다.
- JOIN 되지 않는 튜플들의 오른쪽 COLUMN값은 NULL로 채운다.
SELECT A.name, B.age FROM A LEFT OUTER JOIN B ON A.ID = B.ID
3. RIGHT OUTER JOIN
- JOIN 연산자 오른쪽에 위치한 테이블의 튜플 모두를 반환한다.
- JOIN 되지 않는 튜플들의 왼쪽 테이블 COLUMN값은 NULL로 채운다.
SELECT A.name, B.age FROM A RIGHT OUTER JOIN B ON A.ID = B.ID
4. FULL OUTER JOIN
- LEFT, RIGHT OUTER JOIN을 합친 것과 같은 기능을 한다.
- 양쪽 테이블 모든 튜플들을 반환한다.
- JOIN 되지 않는 튜플들의 빈 COLUMN값은 NULL로 채운다.
- 합집합
SELECT A.name, B.age FROM A FULL OUTER JOIN B ON A.ID = B.ID
5. CROSS JOIN
- 양쪽 테이블의 튜플들의 모든 순서쌍을 반환한다.
- 조건 없는 INNER JOIN이다.
- 예를 들어, 왼쪽 테이블의 튜플 수가 4개고, 오른쪽 테이블의 튜플 수가 5개라면 4 x 5 = 20개의 튜플을 반환한다.
SELECT A.name, B.age FROM A CROSS JOIN B
6. SELF JOIN
- 같은 테이블끼리 속성을 JOIN한다.
- 한 테이블의 복사본을 만들어 JOIN시킨다는 개념으로 생각하면 된다.
SELECT A1.name FROM A as A1, A as A2 WHERE A1.ID = A2.ID
728x90
'Computer Science > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 트랜잭션 고립 수준 (Transaction Isolation Level) (0) | 2020.11.09 |
---|---|
[데이터베이스] 정규화 (0) | 2020.10.26 |
[데이터베이스] 인덱스 (Index) (0) | 2020.09.17 |
[데이터베이스] 이상 (Anomaly) (0) | 2020.09.17 |
[데이터베이스] 트랜잭션 (Transaction) (0) | 2020.09.17 |
댓글