본문 바로가기
Database/SQL

Join 연산을 이용한 select문

by oncerun 2021. 2. 27.
반응형

조인 질의란 두 개 이상의 테이블에서 테이블 간의 관련성을 이용하여 임시적으로 레코드를 통합한 후 결과를 만들어 내는 질의 기법을 말한다.  즉 질의 결과에 서로 다른 테이블에 존재하는 칼럼들이 포함되어 있을 때 사용한다.

 

보통 연관성을 표현하기 위해서는 기본키와 외래키를 사용하여 표현한다.

 

레코드를 결합하는 방식에 따라 크로스조인, 내부 조인, 외부 조인으로 나뉜다.

 

 

1. 크로스 조인

 크로스 조인이란 레코드를 결합하는 조건 없이 모든 조합의 레코드를 결합하는 관계 대수의 카티션 프로덕트 연산과 동일하다. from절에서 두 개 이상의 테이블이 선택되어 해당 레코드를 결합한다.

SELECT COL1,COL2...COLn
	FROM TABLE1 CROSS JOIN TABLE2
    [CROSS JOIN TABLE3...]
	WHERE 조건

2. 내부 조인

SELECT COL....
FROM TABLE1 INNER JOIN TABLE2
ON 조인조건
[INNER JOIN TABLE3]
ON 조인조건
WHERE 조건

3. 자연 조인

 내부 조인시 조인 조건을 기술함으로써 두 테이블을 결합하는 방법을 기술한다. 또한 동일한 이름의 칼럼에 대한 조치가 필요하기 때문에 번거로운데, 자연 조인 질의를 이용하면 간단히 해결할 수 있다.

 

SELECT COL....
FROM TABLE1 NATURAL JOIN TABLE2
WHERE 조건

자연 조인은 2개 이상의 테이블을 입력 받아 하나의 테이블로 반환한다. 이때 조인 대상 테이블에 같은 이름의 칼럼을 가지고 있다면 조긴 조건을 별도로 기술할 필요가 없다.

 

 

4. 외부 조인

조건에 일치하는 레코드만 결합되는 내부,자연 조인은 2개 이상의 테이블에 걸쳐 있는 여러 칼럼을 하나의 결과 테이블에 표현할 수 있지만 조인 조건에 따라 결합될 수 없는 레코드는 표현이 되지 않는다.

이때 외부 조인을 사용하는데 외부 조인은 조건에 맞지 않는 레코드도 함께 포함시키는 점에서 내부 조인가 차이가 있다.

JOIN 절을 기준으로 조건 불일치 레코드를 결과에 포함시키는 주체가 되는 테이블의 위치에 따라 LEFT OUTER JOIN과 RIGHT OUTER JOIN 그리고 완전 외부 조인 FULL OUTER JOIN 이 있다.

 즉 주체 테이블은 모든 레코드는 결과에 포함된다. 다만 full outer join은 지원 여부에 대해서 확인을 해봐 합니다. 그렇지 않다면 UNION ALL을 활용하여 결과를 얻으면 됩니다.

 

5. 셀프 조인

 한 테이블이 자기 자신과 조인되는 것을 셀프 조인이라 한다.  반드시 서로 다른 별칭을 사용하여야 한다.

SELECT 별칭.컬럼
FROM TABLE1 별칭 INNER/OUTER JOIN TABLE2 별칭
ON 조건
WHERE절
반응형

'Database > SQL' 카테고리의 다른 글

SQL 코딩테스트 연습  (0) 2022.10.17
[유선생] SQL 개발자 (3)  (0) 2022.02.12
[유선생] SQL 개발자 (2)  (0) 2022.02.04
SQL 개발자  (2) 2022.01.23
MERGE  (0) 2021.02.22

댓글