CS 길라잡이
정보처리기사 이론
읽기 설정
글꼴 조합

제목 · 본문 순서예요. 선택하면 지금 읽는 화면에 적용돼요.

글꼴 출처 ↗
읽기 글자 크기

정보처리기사 · DB·SQL · 10/15

연결하며 늘어나는 행

책 4권을 조인하면 결과도 4행일까?

조인은 두 입력의 행을 조건에 따라 짝짓는다. 한 행에 여러 짝이 있으면 결과도 그만큼 늘어난다.

이 예제에서 책 1번은 대출 이력이 2개, 2번은 1개이고 3·4번은 없다. INNER JOIN 결과는 대출이 있는 짝 3행이다. 책을 왼쪽에 둔 LEFT JOIN은 미일치 책도 남겨 총 5행이다.

미일치 행의 대출 열에는 NULL이 채워진다. 조인 뒤 WHERE l.loan_id IS NULL로 대출 이력이 없는 책 3·4번을 찾을 수 있다. 이 예제의 loan_id는 기본키여서 원래 NULL이 없다는 조건을 사용한다.

  1. 01 →

    왼쪽 행

  2. 02 →

    일치하는 오른쪽 행

  3. 03 →

    짝마다 결과 한 행

  4. 04

    없으면 보충 행

같은 상황에서 비교하기

개념의 기준과 확인할 점
개념기준확인할 점
INNER일치한 짝만현재 3행
LEFT OUTER왼쪽 미일치 행도 보존현재 5행
CROSS모든 조합현재 두 표는 4×3=12행

도서관 예제로 따라가기

SELECT b.book_id, l.loan_id
FROM books b
LEFT JOIN loans l ON l.book_id = b.book_id
ORDER BY b.book_id, l.loan_id;
예상 결과 · 격리된 PGlite 실행으로 확인
book_idloan_id
111
112
213
3NULL
4NULL

같은 책이 여러 대출과 짝지어지면 책번호가 결과에서 반복된다.

공통 예제 데이터 보기
books
book_idtitleshelf_codepages
1SQL 입문DB120
2설계 노트SW200
3관계 모델DBNULL
4분산 읽기NULL160
loans
loan_idbook_id
111
121
132

내 말로 설명해 보기

LEFT JOIN 결과가 책 수보다 많은 이유와 NULL 행의 의미를 설명해 보자.

0/6,000자 · 브라우저 저장 · 계정 동기화 없음

설명한 뒤 점검하기

설명 예시 확인

책 1번이 두 대출에 연결되어 두 행이 된다. 책 3·4번은 짝이 없어서 대출 쪽 열이 NULL인 보충 행으로 남는다.

암기한 문장과 같을 필요는 없어요. 개념의 기준과 예외가 맞는지 비교하세요.

참고한 자료

행 조건·그룹·조인 ↗

PostgreSQL 18 · 확인 2026-10-28

이전 개념 자료와의 연결

이전 자료에서 다룬 주제를 이어받아 설명과 예시를 다시 썼어요.