Day 38 - MySQL pt.2

haxxru log;·2026년 4월 23일
post-thumbnail

이 글은 2026년 04월 23일 작성된 글입니다.

오늘은 MySQL 심화 내용 중
JOIN, GROUP BY, 집계 함수, 그리고 SQL 실행 흐름까지 정리했다.


1. JOIN 개념

JOIN은 두 개 이상의 테이블을 합쳐서 데이터를 조회하는 방식이다.

SELECT *
FROM emp
INNER JOIN dept
ON emp.deptId = dept.id;
  • JOIN = 테이블을 곱한다
  • ON = 불필요한 데이터 제거

2. deptName → deptId 구조 변경

  • 문자열 대신 id로 관계 연결
  • 유지보수 쉬워짐

3. GROUP BY + 집계 함수

SELECT deptId, AVG(salary)
FROM emp
GROUP BY deptId;
  • COUNT, SUM, AVG, MAX, MIN 사용

4. GROUP_CONCAT

GROUP_CONCAT(name ORDER BY id DESC SEPARATOR ', ')

여러 행을 하나의 문자열로 합친다.


5. IF / CASE

SELECT IF(deptId = 1, '홍보', '기획');
SELECT CASE
WHEN deptId = 1 THEN '홍보'
WHEN deptId = 2 THEN '기획'
END;

6. JOIN + GROUP BY

SELECT D.name,
GROUP_CONCAT(E.name),
AVG(E.salary)
FROM emp AS E
INNER JOIN dept AS D
ON E.deptId = D.id
GROUP BY E.deptId;

7. HAVING

HAVING AVG(salary) >= 5000
  • WHERE : 그룹 전
  • HAVING : 그룹 후

8. SQL 실행 순서

  1. FROM + JOIN
  2. WHERE
  3. GROUP BY
  4. 집계 함수
  5. HAVING
  6. SELECT
  7. ORDER BY
  8. LIMIT

9. 서브쿼리

SELECT *
FROM (
    SELECT * FROM board
) AS B;

✅ 정리

  • JOIN은 ON 조건이 필수이다.
  • id 기반 관계가 유지보수에 유리하다.
  • GROUP BY와 집계 함수는 데이터 분석 핵심이다.
  • SQL 실행 순서를 이해해야 쿼리를 제대로 작성할 수 있다.

0개의 댓글