SQL (Structured Query Language)
데이터베이스와 대화하기 위한 표준 언어, SQL의 핵심 원리를 다룹니다.
필수Internal
1. 논리적 실행 순서 (Logical Order of Execution)
SQL을 작성하는 순서(SELECT -> FROM…)와 실제로 데이터베이스가 실행하는 순서는 다릅니다. 이를 모르면 에러가 발생합니다.
- FROM / JOIN: 데이터를 가져올 테이블을 먼저 찾습니다.
- WHERE: 조건에 맞지 않는 행(Row)을 미리 걸러냅니다. (성능 핵심)
- GROUP BY: 남은 데이터를 그룹으로 묶습니다.
- HAVING: 그룹화된 데이터 중 조건을 만족하는 그룹만 남깁니다.
- SELECT: 출력할 컬럼을 선택하고 계산합니다. (Window Function도 이때!)
- ORDER BY: 결과를 정렬합니다.
- LIMIT: 개수를 제한합니다.
Why?:
SELECT에서 만든 별칭(Alias)을WHERE절에서 못 쓰는 이유가 바로 이것입니다.WHERE가SELECT보다 먼저 실행되기 때문입니다!
2. 집합 이론 (Set Theory)
JOIN은 **집합(Set)**의 개념입니다.
- INNER JOIN: 교집합 () - 두 테이블 모두에 있는 데이터.
- LEFT JOIN: 전체 + () - 왼쪽은 다 살리고, 오른쪽은 있으면 붙임.
- FULL OUTER JOIN: 합집합 () - 양쪽 모두 다 살림.
- CROSS JOIN: 곱집합 () - 모든 가능한 조합 (행 개수 곱하기).
커리큘럼 (Curriculum)
1. JOIN (테이블 결합)
여러 테이블을 결합하여 의미있는 데이터를 추출하는 방법을 배웁니다.
INNER JOIN,LEFT JOIN,FULL OUTER JOIN,CROSS JOIN- JOIN 시작하기 →
2. 널(NULL) 처리
데이터 분석의 가장 큰 적, NULL 값을 안전하게 처리하는 방법을 배웁니다.
IFNULL(),COALESCE(),SAFE_DIVIDE()- 널(NULL) 처리 시작하기 →
3. 문자열 함수
텍스트 데이터를 자르고, 붙이고, 변환하는 방법을 배웁니다.
SUBSTR(),CONCAT(),REGEXP_EXTRACT()- 문자열 함수 시작하기 →
4. 날짜/시간 함수
시계열 분석의 기초인 DATE, TIMESTAMP 처리법을 배웁니다.
DATE_TRUNC(),DATE_DIFF(),FORMAT_DATE()- 날짜/시간 함수 시작하기 →
5. 집계와 그룹화
데이터를 요약하여 통찰을 얻는 GROUP BY 기술을 배웁니다.
COUNT(),SUM(),AVG(),COUNTIF()- 집계와 그룹화 시작하기 →
6. 윈도우 함수 (고급)
행과 행 사이의 관계를 계산하는 SQL의 꽃, 윈도우 함수를 배웁니다.
RANK(),LEAD(),LAG(),SUM() OVER()- 윈도우 함수 시작하기 →
7. CTE (Common Table Expression)
복잡한 쿼리를 레고 블록처럼 나누어 작성하는 가독성 향상 기술입니다.
WITH문법 활용- CTE 시작하기 →
Last updated on