기술블로그
📌SQL 쿼리 사고 흐름 완전 정복 – 읽을 땐 아래에서, 쓸 땐 위에서!
Chansman
2025. 3. 26. 13:36
🎯 혼자서 쿼리를 짜내려가기 위한 핵심 3가지
포인트 실천 방법
1. 테이블 구조 익히기 | 테이블별 주요 컬럼 + 역할을 반복 복습 (제가 계속 요약해드릴게요!) |
2. 조인 흐름 따라가기 | 항상 "내가 뭘 알고 있고 → 뭘 알고 싶은가?" 흐름으로 방향 잡기 |
3. 중간 테이블 그려보기 | JOIN할 때마다 "조인 후 생기는 중간 테이블"을 머릿속에 그려보기 or 써보기 |
🎯 결론부터 말하면: ✅ 읽을 땐 아래에서부터! ✅ 작성할 땐 위에서부터!
이게 가장 효과적인 흐름이에요. 왜 그런지 아래에서 쉽게 설명드릴게요 👇
🧭 1️⃣ 읽을 때는 "결과"부터 추적 (아래 → 위)
이유 설명
✅ SELECT 결과를 먼저 보기 때문 | SELECT절에서 어떤 컬럼이 나오는지를 보면 → 어떤 테이블과 JOIN이 필요한지 유추 가능 |
✅ WHERE 조건이 가장 구체적이다 | WHERE에서 필터링 기준이 명확해서 흐름의 출발점으로 보기 좋음 |
✅ JOIN이 많을수록 역추적이 안정적이다 | 결과를 보고 → 어떤 테이블에서 왔는지 추적하기 쉬움 |
📌 예시 분석
SELECT c.name, AVG(f.rental_rate)
FROM category c
JOIN film_category fc ON ...
JOIN film f ON ...
GROUP BY c.name;
🧠 분석 순서:
- SELECT: 이름 + 평균 요금 → film과 category 관련
- GROUP BY: 이름 기준으로 묶는다
- JOIN: 영화 → 중간 테이블 → 카테고리
🛠 2️⃣ 작성할 때는 "흐름"대로 (위 → 아래)
이유 설명
✅ 흐름은 항상 "내가 가진 정보 → 내가 원하는 정보" 방향 | FROM부터 쌓아가며 필요한 데이터 조립 가능 |
✅ JOIN은 점진적으로 붙이는 게 안정적 | 하나 붙이고 → 확인하고 → 다음 테이블 붙이기 |
✅ 실무에서도 작성은 위에서부터 아래로 해야 함 | 쿼리 순서를 실제 SQL 엔진이 인식하는 방식과 일치 |
📌 예시 흐름
FROM film
JOIN inventory ON …
JOIN rental ON …
SELECT title, COUNT(r.rental_id)
GROUP BY title
🔄 쉽게 비유하자면
상황 비유
읽기 | 📖 추리 소설 결말 보고 → 어떻게 흘러왔는지 되짚는 느낌 |
쓰기 | 🛠 레고 블록을 밑에서부터 차근차근 쌓아가는 느낌 |
✅ 최종 정리
목적 추천 방식
이해/분석 | 아래에서 위로 (결과 → WHERE → JOIN → FROM) |
쿼리 작성 | 위에서 아래로 (FROM → JOIN → SELECT → GROUP BY/ORDER BY) |
💡 보너스 팁
팁 설명
✍️ 초반 연습은 읽는 훈련 + 짜는 훈련을 병행하세요 | 읽기 연습만 하면 이해는 되는데 못 쓰고, 쓰기만 하면 맥락을 모름 |
🧠 머릿속 흐름을 “그림처럼” 그리는 습관 | JOIN 흐름을 글이 아니라 흐름도/표로 상상하는 연습하기 |
이제 쿼리를 읽고 쓰는 사고의 방향이 정리됐어요! 읽을 때는 마치 디버깅하듯, 쓸 때는 설계하듯 접근해보세요 ✨