검수요청.png검수요청.png

조인

위키원
Asadal (토론 | 기여)님의 2021년 8월 7일 (토) 03:16 판 (같이 보기)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
이동: 둘러보기, 검색

조인(join)이란 두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력하는 것을 말한다.[1]

종류[편집]

EQUI JOIN[편집]

두 개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하는 경우에 사용되는 방법이다.
JOIN 의 조건은 WHERE 절에 기술하게 되는데 = 연산자를 사용하여 표현한다.

 SELECT 테이블1.컬럼명, 테이블2.컬럼명, ..
 FROM 테이블1, 테이블2
 WHERE 테이블1.컬럼명1 = 테이블2.컬럼명1;[1]

Non EQUI JOIN[편집]

두 개의 테이블 간에 컬럼 값들이 서로 정확하게 일치하지 않는 경우에 사용되는 방법이다.
BETWEEN, >, >=, <. <= 등 의 연산자들을 사용하여 표현한다.

 SELECT 테이블1.컬럼명, 테이블2.컬럼명, ..
 FROM 테이블1, 테이블2
 WHERE 테이블1.컬럼명1 BETWEEN 테이블2.컬럼명1 AND 테이블2.컬럼명2;[1]

INNER JOIN[편집]

내부 조인이라고도 하며 JOIN 조건에서 동일한 값이 있는 행만 반환한다.
INNER JOIN 은 WHERE 절에서 사용하던 JOIN 조건을 FROM 절에서 정의하겠다는 의미이므로 USING 이나 ON 절을 필수적으로 사용해야 한다.

 SELECT 테이블명1.컬럼명1, 테이블명2.컬럼명1
 FROM 테이블명1 INNER JOIN 테이블명2
 ON 테이블명1.컬럼명1, 테이블명2.컬럼명1;
 SELECT 테이블명1.컬럼명1, 테이블명2.컬럼명1
 FROM 테이블명1 JOIN 테이블명2
 ON 테이블명1.컬럼명1, 테이블명2.컬럼명1;[1]

NATURAL JOIN[편집]

자연 조인이라고도 하며 두 테이블 간의 동일한 이름을 갖는 모든 컬럼들에 대해 EQUI JOIN 을 수행한다.
NATURAL JOIN 이 명시되면, USING, ON, WHERE 절에서 조인 조건을 정의할 수 없다.

 SELECT 컬럼명1, 컬럼명2
 FROM 테이블명1 NATURAL JOIN 테이블명2;

위와 같이 작성하게 되면 두 개의 테이블에서 공통된 컬럼을 자동으로 인식하여 조인 처리한다.
조인에 사용되는 컬럼들은 같은 데이터 유형이어야 하며, 별칭이나 접두사를 붙일 수 없다.
 * 처럼 별도의 컬럼 순서를 지정하지 않으면 NATURAL JOIN 의 기준이 되는 컬럼들이 다른 컬럼보다 먼저 출력된다.[1]

CROSS JOIN[편집]

일반 집합 연산자의 PRODUCT 개념으로 테이블간 조인조건이 없는 경우 생길 수 있는 모든 데이터의 조합을 말한다.
두 개의 테이블에 대한 CROSS JOIN 결과는, 양쪽 집합의 M * N 건의 데이터 조합이 발생한다.

 SELECT 컬럼명1, 컬럼명2
 FROM 테이블명1 CROSS JOIN 테이블명2;[1]

OUTER JOIN[편집]

JOIN 조건에서 동일한 값이 없는 행도 반환할 때 사용한다.[1]

LEFT OUTER JOIN[편집]

조인 수행 시 먼저 표기된 좌측 테이블에 해당하는 데이터를 먼저 읽은 후, 우측 테이블에서 JOIN 대상 데이터를 읽어온다.
우측 테이블에서 만족하는 데이터가 없는 경우 NULL 값으로 채운다.

 SELECT 컬럼명1, 컬럼명2
 FROM 테이블명1 LEFT OUTER JOIN 테이블명2
 ON 테이블명1.컬럼명1 = 테이블명2.컬럼명1;[1]

RIGHT OUTER JOIN[편집]

조인 수행 시 먼저 표기된 우측 테이블에서 해당하는 데이터를 먼저 읽은 후, 좌측 테이블에서 JOIN 대상 데이터를 읽어온다.
좌측 테이블에서 만족하는 데이터가 없는 경우 NULL 값으로 채운다.

 SELECT 컬럼명1, 컬럼명2
 FROM 테이블명1 RIGHT OUTER JOIN 테이블명2
 ON 테이블명1.컬럼명1 = 테이블명2.컬럼명1;[1]

FULL OUTER JOIN[편집]

조인 수행 시 좌측, 우측 테이블의 모든 데이터를 읽어 조인하여 결과를 생성한다.
RIGHT OUTER JOIN 과 LEFT OUTER JOIN 의 결과를 합집합으로 처리한 결과와 동일하다.
단, UNION ALL 이 아닌 UNION 기능과 같으므로 중복되는 데이터는 삭제한다.

 SELECT 컬럼명1, 컬럼명2
 FROM 테이블명1 FULL OUTER JOIN 테이블명2
 ON 테이블명1.컬럼명1 = 테이블명2.컬럼명1;[1]

각주[편집]

  1. 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 꽁담, 〈조인이란? 〉, 2018년11월2일

같이 보기[편집]


  검수요청.png검수요청.png 이 조인 문서는 데이터에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.