1. JOIN의 개요
- 2개의 테이블에 대해 연관된 튜플을 결합하여, 하나의 새로운 릴레이션을 반환
- 일반적으로 FROM절에 기술하지만, 릴레이션이 사용되는 어느 곳에서나 사용할 수 있음
- JOIN의 종류 : INNER JOIN, OUTER JOIN
2. INNER JOIN : EQUI JOIN, NON-EQUI JOIN
<EQUI JOIN>
- WHERE절
SELECT [테이블명1.]속성명, [테이블명2.]속성명, ...
FROM 테이블명1, 테이블명2, ...
WHERE 테이블명1.속성명 = 테이블명2. 속성명;
- NATURAL JOIN절
SELECT [테이블명1.]속성명, [테이블명2.]속성명, ...
FROM 테이블명1 NATURAL JOIN 테이블명2;
- JOIN ~ USING절
SELECT [테이블명1.]속성명, [테이블명2.]속성명, ...
FROM 테이블명1 JOIN 테이블명2 USING(속성명);
<NON-EQUI JOIN>
SELECT [테이블명1.]속성명, [테이블명2.]속성명, ...
FROM 테이블명1, 테이블명2, ...
WHERE (NON-EQUI JOIN 조건);
- EQUI JOIN
- EQUI JOIN : JOIN 대상 테이블에서 공통 속성을 기준으로 '='(equal) 비교에 의해 같은 값을 가지는 행을 연결하여 결과를 생성하는 JOIN 방법
- NATURAL JOIN : EQUI JOIN에서 JOIN 조건이 '='일 때 동일한 속성이 두 번 나타나게 되는데, 이 중 중복된 속성을 제거하여 같은 속성을 한 번만 표기하는 방법
- JOIN 속성 : EQUI JOIN에서 연결 고리가 되는 공통 속성
- NON-EQUI JOIN
- JOIN 조건에 '=' 조건이 아닌 나머지 비교 연산자( >, <, <>, >=, <=)를 사용하는 JOIN 방법
- CROSS JOIN (교차 조인)
- 조건이 없는 INNER JOIN을 수행하면 CROSS JOIN과 동일한 결과를 얻을 수 있음
- 조인하는 두 테이블에 있는 튜플들의 순서쌍을 결과로 반환
- 교차 조인의 결과로 반환되는 테이블의 행의 수는 두 테이블의 행 수를 곱한 것과 같음
3. OUTER JOIN
<LEFT OUTER JOIN>
SELECT [테이블명1.]속성명, [테이블명2.]속성명, ...
FROM 테이블명1, 테이블명2
ON 테이블명1.속성명 = 테이블명2.속성명;
SELECT [테이블명1.]속성명, [테이블명2.]속성명, ...
FROM 테이블명1, 테이블명2
WHERE 테이블명1.속성명 = 테이블명2.속성명(+);
<RIGHT OUTER JOIN>
SELECT [테이블명1.]속성명, [테이블명2.]속성명, ...
FROM 테이블명1 RIGHT OUTER JOIN 테이블명2
ON 테이블명1.속성명 = 테이블명2.속성명;
SELECT [테이블명1.]속성명, [테이블명2.]속성명, ...
FROM 테이블명1, 테이블명2
WHERE 테이블명1.속성명(+) = 테이블명2.속성명;
<FULL OUTER JOIN>
SELECT [테이블명1.]속성명, [테이블명2.]속성명, ...
FROM 테이블명1 FULL OUTER JOIN 테이블명2
ON 테이블명1.속성명 = 테이블명2.속성명;
- 릴레이션에서 JOIN 조건에 만족하지 않은 튜플도 결과로 출력하기 위한 JOIN 방법
- OUTER JOIN의 종류
- LEFT OUTER JOIN
- INNER JOIN의 결과를 구한 후, 우측 항 릴레이션의 어떤 튜플과도 맞지 않는 좌측 항의 릴레이션에 있는 튜플들에 NULL 값을 붙여서 INNER JOIN의 결과에 추가
- RIGHT OUTER JOIN
- INNER JOIN의 결과를 구한 후, 좌측 항 릴레이션의 어떤 튜플과도 맞지 않는 우측 항의 릴레이션에 있는 튜플들에 NULL 값을 붙여서 INNER JOIN의 결과에 추가
- FULL OUTER JOIN
- LEFT OUTER JOIN과 RIGHT OUTER JOIN을 합쳐 놓은 것
- FULL OUTER JOIN의 절차
- INNER JOIN의 결과를 구함
- 좌측 항의 릴레이션의 튜플들에 대해 우측 항의 릴레이션의 어떤 튜플과도 맞지 않는 튜플들에 NULL 값을 붙여서 INNER JOIN의 결과에 추가
- 유사하게 우측 항의 릴레이션의 튜플들에 대해 좌측 항의 릴레이션의 어떤 튜플과도 맞지 않는 튜플들에 NULL 값을 붙여서 INNER JOIN의 결과에 추가
- LEFT OUTER JOIN
4. SELF JOIN
SELECT [별칭1.]속성명, [별칭1.]속성명, ...
FROM 테이블명1 [AS] 별칭1 JOIN 테이블명1 [AS] 별칭2
ON 별칭1.속성명 = 별칭2.속성명;
SELECT [별칭1.]속성명, [별칭1.]속성명, ...
FROM 테이블명1 [AS] 별칭1, 테이블명1 [AS] 별칭2
WHERE 별칭1.속성명 = 별칭2.속성명;
- 같은 테이블에서 2개의 속성을 연결하여 EQUI JOIN을 하는 JOIN 방법
'Study > EIP' 카테고리의 다른 글
[정보처리기사 필기] 프로그래밍 언어 활용 - 103. 배열과 문자열 (0) | 2025.01.15 |
---|---|
[정보처리기사 필기] 프로그래밍 언어 활용 - 101. 제어문 (0) | 2025.01.15 |
[정보처리기사 필기] SQL 응용 - 084. DML - SELECT - 2 (0) | 2025.01.14 |
[정보처리기사 필기] SQL 응용 - 083. DML - SELECT - 1 (0) | 2025.01.14 |
[정보처리기사 필기] SQL 응용 - 082. DML 데이터 조작어 (0) | 2025.01.14 |