정보 처리/데이터베이스

조인 - INNER JOIN(내부조인/이너조인)

본클라쓰 2008. 12. 16. 17:00

 

조인이란 두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것을 의미한다.

 

관계형 데이터베이스에서 조인은 매우 중요한 데, 테이블은 중복과 공간 낭비를 피하고 데이터의 무결성을 위해 여러 개의 테이블로 분리하여 저장한다. 그리고 이 분리된 테이블은 서로 관계(relation)를 맺고 있다. 이 관계의 기준은 기본키(PK)와 외래키(FK)이다. 이렇게 분리된 테이블 간에 데이터의 입력 및 조회를 위해 발달한 기술이 있는데, 입력에는 트랜잭션이 있고, 조회를 위한 기술에는 조인이 있다.

 

조인은 PK와 FK를 기준으로 테이블을 합쳐 하나의 테이블처럼 결과를 출력할 수 있게 해 준다.

 

 

 

■ INNER JOIN

 

조인 중에서 가장 많이 사용되는 조인으로 일반적으로 조인이라 말하면 INNER JOIN을 말하는 것이다. INNER JOIN을 사용하면 조인되는 테이블에서 조건에 일치하는 항목의 레코드를 모두 반환한다. 만약 한쪽 테이블에 데이터가 3개 있고, 다른 테이블에 데이터가 5개 있는데 일치하는 데이터가 4건이라면 출력은 4건이 된다.

 

SELECT 컬럼(S)

FROM 테이블

INNER JOIN 다른테이블 ON 조인될 조건

 

INNER JOIN 구문을 생략해 JOIN이라 써도 무방하고 INNER JOIN 구문을 완전히 생략하고 FROM 다음에 (,)로 구분하여 테이블을 나열해도 된다.

 

 

사용예제)

SELECT U.USER_ID, U.NAME, B.PROD_NUM, B.PRICE, B.AMOUT

FROM USER

INNER JOIN BUY ON USER.USER_UD = BUY.USER_ID

 

위 쿼리는 회원 테이블인 USER 테이블과 구매 목록 테이블은 BUY 테이블을 조인하는 쿼리문입니다. 위 쿼리문은 INNER JOIN 구문을 생략하고 다음과 같이 작성할 수도 있습니다.

 

SELECT U.USER_ID, U.NAME, B.PROD_NUM, B.PRICE, B.AMOUNT

FROM USER AS U, BUY AS B

WHERE U.USER_ID = B.USER_ID;

 

위와 같이 쿼리문을 작성할 수 있지만 호환성 등의 문제로 별로 권장하지 않는 방식이다. 하지만 개발자에 따라 위의 방식으로 조인하는 경우도 있다.

 

 

 

※ 세개 이상의 테이블의 INNER JOIN 방법

 

INNER JOIN 구문을 여러 개 사용해 다수의 테이블을 조인할 수 있는데 다음과 같다.

 

SELECT *

FROM onE

INNER JOIN TWO on onE.ID = TWO.ID

INNER JOIN THREE on onE.ID = THREE.ID

 

 

'정보 처리 > 데이터베이스' 카테고리의 다른 글

기타 - 트리거(Trigger)란  (0) 2008.12.17
조인 - OUTER JOIN(외부조인)  (0) 2008.12.16
조작문 - LIKE 연산자  (0) 2008.12.13
조작문 - 데이터의 삭제  (0) 2008.12.13
조작문 - 기존의 데이터의 수정  (0) 2008.12.13