본문 바로가기
📖 Computer Science/데이터베이스

[CS Study] 데이터베이스 (4) - 조인

by 헤이즐넛 좋아하는 개발자 2025. 5. 9.

시작하기 전에

필요 데이터를 위해 테이블을 합치는 조인이라는 개념에 대해 알아봅시다.


I. 조인이란

조인(join)은 여러 테이블을 합쳐 원하는 데이터를 얻는 작업을 뜻한다.

조인은 결과에 포함되는 테이블의 범주에 따라 내부 조인, 외부 조인으로 구분한다.

 

※ SQL 조인 연산 연산자

더보기

※ SQL 조인 연산 연산자

    • ON:조인할 때 두 테이블의 컬럼을 어떻게 매칭할지를 지정해주는 조건절이다.
      예) ON e.dept_id = d.id
    • USING: 양쪽 테이블에 공통으로 있는 컬럼 이름으로 조인할 때 사용하는 연산자다.
      예) USING (dept_id)
       양쪽 테이블에 둘 다 있는 dept_id를 기준으로 조인
    • WHERE: 테이블에서 원하는 데이터를 조회하기 위한 조건절을 작성할 때 사용하는 연산자다.
      조건절에 비교 연산자, IN 연산자, BETWEEN 연산자 등을 사용해 원하는 데이터를 얻을 수 있다.
    • IN: WHERE 절과 함께 사용하며, IN 연산자 뒤에 나오는 조건에 하나라도 해당하는 값을 검색할 수 있다.
    • BETWEEN: 특정 범위에 속하는 데이터를 조회할 때 사용하는 연산자다. >, <처럼 값을 비교하는 데 사용한다.
    • LIKE: 문자열 패턴 비교에 쓰이는 연산자
      예)
      ON e.dept_name LIKE d.name || '%'
      e.dept_name이 d.name으로 시작하는 경우 매칭

II. 내부 조인

내부 조인(INNER JOIN)은 2개 이상의 테이블에서 공통 속성을 가진 데이터를 검색하기 위한 연산이다.

예를 들어, 학번, 이름, 전공이 저장된 '학생 전공 테이블'과, 학번과 동아리가 저장된 '학생 동아리 테이블'이 있다고 하자.

학생별 가입 동아리를 확인하고 싶다면 두 테이블에서 공통되는 열인 학번을 이용해 연산을 수행하면 된다.

SELECT *
FROM 학생 전공 테이블 INNER JOIN 학생 동아리 테이블
ON 학생 전공 테이블.학번 = 학생 동아리 테이블.학번

내부 조인 예


III. 외부 조인

외부 조인(OUTER JOIN)은 조인 조건에 해당하는 속성 값이 없는 데이터까지 모두 조회하는 연산이다. 이때 존재하지 않는 데이터에 대해서는 NULL로 표기한다.

다음과 같은 종류가 있다:

  • 왼쪽 외부 조인(LEFT OUTER JOIN): 연산자 왼쪽 테이블의 모든 데이터를 결과 테이블에 조회한다.
  • 오른쪽 외부 조인(RIGHT OUTER JOIN): 연산자 오른쪽 테이블의 모든 데이터를 결과 테이블에 조회한다.
  • 완전 외부 조인(FULL OUTER JOIN): 양쪽 테이블에서 조건을 만족하지 않는 데이터가 있더라도 모두 포함해 결과 테이블에 조회한다.

예를 들어, 위 테이블에 왼쪽 외부 조인을 적용하면 다음과 같다:

SELECT *
FROM 학생 전공 테이블 LEFT OUTER JOIN 학생 동아리 테이블
ON 학생 전공 테이블.학번 = 학생 동아리 테이블.학번

데이터베이스는 여기서 마무리다.