기술블로그

📌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 흐름을 글이 아니라 흐름도/표로 상상하는 연습하기

이제 쿼리를 읽고 쓰는 사고의 방향이 정리됐어요! 읽을 때는 마치 디버깅하듯, 쓸 때는 설계하듯 접근해보세요 ✨