1. JOIN의 개념
- 2개의 테이블에 대해 연관 튜플들을 결합하여 하나의 새로운 릴레이션 반환
- 일반적으로 FROM 절에 기술, 릴레이션 사용되는 어느 곳에서나 사용 가능하며 보통 WHERE 절을 이용
2. INNER JOIN
1) EQUI 조인
- JOIN 대상 테이블에서 공통 속성을 기준으로 = 비교에 의해 같은 값 가지는 행 연결하여 결과 생성
- NATURAL JOIN : JOIN조건이 = 일 때 동일한 속성이 두 번 나타는데, 그것을 제거하여 한번만 표기
- JOIN 속성 : 연결 고리가 되는 공통 속성
(1) WHERE 절 이용
SELECT [테이블명1.]속성명, [테이블명2.]속성명,..
FROM 테이블명1, 테이블명2 ...
WHERE 테이블명1.속성명 = 테이블명2.속성명 ;
(2) NATURAL JOIN
SELECT [테이블명1.]속성명, [테이블명2.]속성명,... FROM 테이블명1 NATURAL JOIN 테이블명 2 ; | NATURAL JOIN은 조인할 속성을 지정하지 않으므로 두 테이블에 이름과 도메인이 같은 속성이 반드시 존재해야 함 |
(3) JOIN ~ USING 절 이용
SELECT [테이블명1.]속성명, [테이블명2.]속성명,...
FROM 테이블명1 JOIN 테이블명2 USING(속성명) ;
2) NON – EQUI JOIN
- JOIN 조건에 = 조건이 아닌 비교연산자 사용하는 JOIN
SELECT [테이블명1.]속성명, [테이블명2.]속성명, ...
FROM 테이블명1, 테이블명2, ...
WHERE NON-EQUI JOIN 조건(비교연산) ;
3. OUTER JOIN
- JOIN 조건에 만족하지 않는 튜플도 결과로 출력하기 위한 방법
- INNER JOIN 결과를 구한 후 뒤에 OUTER JOIN 한 결과를 추가함
1) LEFT OUTER JOIN
- 우측항 릴레이션의 어떠한 튜플과도 맞지 않는 좌측 항 릴레이션에 있는 튜플들에 우측항 속성 튜플 값을 NULL로 붙임
- 좌측 릴레이션이 기준이 되어 좌측 릴레이션에 있는 튜플은 모두 표시하고 우측 릴레이션에서는 관련 있는 튜플만 표시
SELECT [테이블명1.]속성명, [테이블2.]속성명, ... FROM 테이블명1 LEFT OUTER JOIN 테이블명2 ON 테이블명1. 속성명 = 테이블명2. 속성명 ; | SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1, 테이블명2 WHERE 테이블명1. 속성명 = 테이블명2. 속성명(+) ; |
2) RIGHT OUTER JOIN
- 좌측항 릴레이션의 어떠한 튜플과도 맞지 않은 우측 항의 릴레이션에 있는 튜플들에 좌측항 속성 튜플 값을 NULL로 붙임
- 우측 릴레이션이 기준이 되어 우측 릴레이션에 있는 튜플은 모두 표시하고 좌측 릴레이션에서는 연관된 튜플만 표시
SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1 RIGHT OUTER JOIN 테이블명2 ON 테이블명1, 속성명 = 테이블명2. 속성명 ; | SELECT [테이블명1.]속성명, [테이블명2.]속성명, ... FROM 테이블명1, 테이블명2 WHERE 테이블명1. 속성명(+) = 테이블명2. 속성명 |
* LEFT OUTER JOIN 과 RIGHT OUTER JOIN 은 FROM절 테이블 위치만 서로 바뀌면 같은 결과를 가져옴
3) FULL OUTER JOIN
- LEFT OUTER JOIN + RIGHT OUTER JOIN
SELECT [테이블명1.]속성명, [테이블명2.]속성명, ...
FROM 테이블명1 FULL OUTER JOIN 테이블명2
ON 테이블명1. 속성명 = 테이블명2. 속성명 ;
4. SELF JOIN
- 같은 테이블에서 2개의 속성을 연결하여 EQUI JOIN 하는 것
SELECT [별칭1.]속성명, [별칭1.]속성명,... FROM 테이블명1 [AS] 별칭1 JOIN 테이블명2 [AS] 별칭2 ON 별칭1.속성명 = 별칭2.속성명 ; | SELECT [별칭1.]속성명, [별칭1.]속성명, ... FROM 테이블명1 [AS] 별칭1, 테이블명1 [AS] 별칭2 WHERE 별칭1,속성명 = 별칭2.속성명 ; |
'[자격증] 정보처리기사' 카테고리의 다른 글
[정보처리기사][실기]2과목 14 SQL – DCL (0) | 2019.11.12 |
---|---|
[정보처리기사][실기]2과목 13 SQL – DML (0) | 2019.11.12 |
[정보처리기사][실기]2과목 11 SQL – SELECT (0) | 2019.11.12 |
[정보처리기사][실기]2과목 10 SQL – DDL (0) | 2019.11.12 |
[정보처리기사][실기]2과목 09 관계대수 (0) | 2019.11.12 |