[SQL Study Log 07] 실무 완전 정복(SQL 요약 시리즈 마무리)+바쁜 학기 속에서도 SQL 꾸준히 연습하기

Kuromi·2026년 3월 1일

SQL

목록 보기
7/7
post-thumbnail

SQL 실무 완전 정복 + 학기 중 실전 연습 계획

이번 글에서는 지금까지 배운 SQL 기본 문법부터 함수, 집계, CTE까지 실무 관점에서 활용하는 방법을 정리하고, 개강 이후부터 학기 중에는 실전 문제 풀이와 오답노트 정리를 통해 SQL 실력을 단단히 다질 계획까지 공유합니다.


1️⃣ JOIN 심화

SQL에서 가장 많이 쓰이는 JOIN!

  • INNER JOIN: 양쪽 테이블 모두 조건 만족 데이터
  • LEFT JOIN: 왼쪽 테이블 기준으로 모두 가져오기, 없는 값은 NULL
  • RIGHT / FULL OUTER JOIN: 오른쪽 기준 / 양쪽 모두 가져오기
-- 직원과 부서 테이블 LEFT JOIN 예제
SELECT e.name, d.department_name
FROM employees e
LEFT JOIN departments d
ON e.department_id = d.id;
  • Self-join: 같은 테이블끼리 JOIN
  • CROSS JOIN: 모든 조합 생성 (데이터 폭발 주의!)

2️⃣ 서브쿼리 활용

  • FROM절 서브쿼리: 임시 테이블처럼 사용 가능
SELECT sub.department_id, AVG(sub.salary)
FROM (SELECT * FROM employees WHERE salary > 3000) sub
GROUP BY sub.department_id;
  • EXISTS / NOT EXISTS: 조건 존재 여부 확인
SELECT name
FROM employees e
WHERE EXISTS (
    SELECT 1 FROM projects p WHERE p.manager_id = e.id
);

3️⃣ CASE WHEN으로 조건 처리

조건에 따라 값을 변환할 때 사용

SELECT name,
       CASE 
           WHEN salary >= 5000 THEN 'High'
           WHEN salary >= 3000 THEN 'Medium'
           ELSE 'Low'
       END AS salary_grade
FROM employees;
  • NULL 처리: COALESCE 활용 가능

4️⃣ 윈도우 함수 심화

  • RANK(), DENSE_RANK(): 순위 계산
  • NTILE(n): 데이터를 n등분
  • 누적합 / 이동평균
SELECT name, salary,
       SUM(salary) OVER (PARTITION BY department_id ORDER BY salary) AS cumulative_salary
FROM employees;

5️⃣ CTE + 재귀 쿼리

  • CTE(Common Table Expression): 쿼리 구조를 읽기 쉽게
  • 재귀 CTE: 계층형 데이터 처리
WITH RECURSIVE subordinates AS (
    SELECT id, manager_id, name
    FROM employees
    WHERE id = 1
    UNION ALL
    SELECT e.id, e.manager_id, e.name
    FROM employees e
    INNER JOIN subordinates s ON e.manager_id = s.id
)
SELECT * FROM subordinates;

6️⃣ 팁

  • 데이터 검증: COUNT, DISTINCT로 이상치 확인
  • 디버깅 쿼리: EXPLAIN으로 실행 계획 확인
  • 임시 테이블 활용: 복잡한 쿼리 나누어 처리

7️⃣ 학기 중 SQL 공부 계획

  • 매일/주 2~3회 실전 문제 풀이 중심 학습
  • 문제 풀이 후 오답노트 작성 및 정리
  • 학기 중에는 수업 내용 + 실전 연습 병행 → 복잡한 쿼리 작성, 데이터 검증, 분석 능력을 역량 강화

8️⃣ 마무리

이번 글을 마지막으로 SQL 시리즈를 정리했습니다.
학기 중에는 실전 문제와 오답노트를 통해 SQL 실력을 체계적으로 다지는 단계로 넘어가려고 합니다.

profile
Code

0개의 댓글