카테고리 없음

DB 정규화된 테이블에서 SQL 쿼리하는 방법 (쉽고 실무형 완벽 가이드)

idea9329 2025. 6. 6. 23:18
반응형

 

데이터베이스를 설계할 때 정규화를 적용하면 데이터가 여러 테이블로 분리됩니다. 이때 가장 많이 궁금한 것이 바로 "정규화된 테이블을 어떻게 SQL로 조회할까?" 입니다. 이 글에서 실무 중심으로 아주 쉽게 알려드리겠습니다.


1. 왜 정규화하면 JOIN이 중요할까?

정규화된 DB에서는 중복을 줄이기 위해 테이블을 여러 개로 나눕니다.
그 결과 👉 필요한 데이터를 조회할 때 여러 테이블을 합쳐야 합니다.
이걸 바로 JOIN 이라고 합니다.


2. 기본 예제 테이블 구조

학생 테이블

학생ID이름

1 홍길동
2 김철수

수강 테이블

학생ID과목

1 수학
1 영어
1 과학
2 영어

3. 정규화된 테이블 쿼리 실전 예제

(1) 학생 이름과 수강과목을 함께 조회

SELECT 학생.이름, 수강.과목
FROM 학생
JOIN 수강 ON 학생.학생ID = 수강.학생ID;

결과

이름과목

홍길동 수학
홍길동 영어
홍길동 과학
김철수 영어

(2) 특정 학생의 수강과목 조회

SELECT 학생.이름, 수강.과목
FROM 학생
JOIN 수강 ON 학생.학생ID = 수강.학생ID
WHERE 학생.이름 = '홍길동';

(3) 전체 수강 과목 목록 중복 없이 조회

SELECT DISTINCT 과목
FROM 수강;

(4) 수강 인원 수를 과목별로 집계

SELECT 과목, COUNT(*) AS 수강인원
FROM 수강
GROUP BY 과목;

4. 정규화된 테이블 쿼리의 핵심 공식

SELECT [원하는 컬럼]
FROM 테이블A
JOIN 테이블B ON 연결조건
WHERE 조건
GROUP BY 필요시 그룹화
ORDER BY 정렬

이 패턴만 익히면 대부분의 쿼리를 작성할 수 있습니다.


5. 실무에서 자주 하는 실수

실수원인

WHERE 없이 조회 모든 데이터가 출력됨
JOIN 조건 실수 잘못 연결되어 데이터 중복 발생
DISTINCT 빠짐 중복 제거 안 됨
GROUP BY 빠짐 집계 오류

6. 한 문장 정리

정규화된 DB에서 쿼리할 때는 JOIN으로 필요한 테이블을 합쳐서 조회한다.

반응형