📚 교육/자기계발

SQL 기초 배우기 (데이터분석 입문 )

📅 2025년 5월 21일 ⏱️ 12분 읽기 ✍️ kimyido

SQL이 왜 필수인가?

데이터분석 직무 분석 (2024):

  • SQL 능력 요구: 95% (거의 필수)
  • 평균 연봉: 3,500~4,500만원
  • 입직 난이도: 낮음 (SQL이면 충분)
결론: SQL을 배우면 데이터분석가로의 길이 열린다!

---

SQL의 3가지 핵심 명령어

1. SELECT (데이터 조회)

기본 문법:

SELECT column1, column2
FROM table_name
WHERE condition;

실제 예시:

-- 직원 테이블에서 이름과 급여만 보기
SELECT name, salary
FROM employees
WHERE salary > 3000000;

-- 결과:
-- name   | salary
-- 김진수  | 3500000
-- 이순신  | 4200000

2. JOIN (테이블 연결)

종류:

  • INNER JOIN: 교집합만
  • LEFT JOIN: 왼쪽 테이블 전부 + 교집합
-- 직원 정보와 부서 정보 연결
SELECT
  e.name,
  e.salary,
  d.department_name
FROM employees e
INNER JOIN departments d
  ON e.department_id = d.id
WHERE e.salary > 3000000;

3. GROUP BY (그룹화 및 집계)

-- 부서별 평균 급여
SELECT
  department_name,
  AVG(salary) as avg_salary,
  COUNT(*) as employee_count
FROM employees
GROUP BY department_name
ORDER BY avg_salary DESC;

---

2개월 SQL 마스터 로드맵

1주차: SELECT 기초

학습 내용:

  • SELECT 기본 문법
  • WHERE (조건 필터링)
  • AND, OR, NOT
  • BETWEEN, IN, LIKE
실습:
-- 연봉이 3000만원 이상 4000만원 이하인 직원
SELECT name, salary
FROM employees
WHERE salary BETWEEN 3000000 AND 4000000;

-- 이름이 '김'으로 시작하는 직원
SELECT name
FROM employees
WHERE name LIKE '김%';

목표: 기본 조회 쿼리 20개 작성 가능

2주차: 정렬 & 함수

학습 내용:

  • ORDER BY (정렬)
  • LIMIT (제한)
  • COUNT, SUM, AVG, MAX, MIN
  • DATE 함수
실습:
-- 연봉 높은 순으로 상위 5명
SELECT name, salary
FROM employees
ORDER BY salary DESC
LIMIT 5;

-- 2024년 입사자의 수
SELECT COUNT(*)
FROM employees
WHERE YEAR(hire_date) = 2024;

3주차: JOIN 마스터

학습 내용:

  • INNER JOIN
  • LEFT JOIN
  • RIGHT JOIN (이해만)
  • 다중 JOIN
실습:
-- 부서 정보와 함께 직원 조회
SELECT
  e.name,
  e.salary,
  d.department_name,
  m.manager_name
FROM employees e
LEFT JOIN departments d ON e.dept_id = d.id
LEFT JOIN managers m ON d.manager_id = m.id;

4주차: GROUP BY & 집계

학습 내용:

  • GROUP BY 기본
  • HAVING (그룹 필터링)
  • COUNT, SUM, AVG
  • 다중 그룹화
실습:
-- 부서별 직원 수와 평균 연봉
SELECT
  department_name,
  COUNT(*) as emp_count,
  AVG(salary) as avg_salary
FROM employees
GROUP BY department_name
HAVING COUNT(*) > 5
ORDER BY avg_salary DESC;

5-8주차: 고급 + 실무 쿼리

학습 내용:

  • SUBQUERY (부쿼리)
  • CASE WHEN (조건부 계산)
  • WINDOW FUNCTION (행번호, 누적합)
  • 복합 쿼리
실무 패턴 20개:

-- 1. 부서별 연봉 랭킹
SELECT
  department_id,
  name,
  salary,
  RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) as rank
FROM employees;

-- 2. 누적 매출
SELECT
  order_date,
  sales,
  SUM(sales) OVER (ORDER BY order_date) as cumulative_sales
FROM sales;

-- 3. 전년 대비 성장률
SELECT
  category,
  YEAR(order_date) as year,
  SUM(amount) as total,
  LAG(SUM(amount)) OVER (PARTITION BY category ORDER BY YEAR(order_date)) as prev_year_total
FROM sales
GROUP BY category, YEAR(order_date);

---

SQL 학습 환경 설정

추천 데이터베이스

종류난이도추천도비고
SQLite쉬움★★★★★신입 최고
MySQL보통★★★★☆실무 많음
PostgreSQL어려움★★★★☆고급 기능
클라우드 (BigQuery)어려움★★★☆☆프로 수준

무료 학습 환경

Option 1: SQLite (가장 쉬움)

# 다운로드: sqlite.org
# 사용법:
sqlite3 mydb.db
.open mydb.db
CREATE TABLE users (id INT, name TEXT);

Option 2: MySQL (권장)

# 다운로드: mysql.com
# 설치 후:
mysql -u root -p
CREATE DATABASE learning_db;
USE learning_db;

Option 3: 온라인 코딩 환경

  • LeetCode SQL
  • HackerRank SQL
  • Mode Analytics (데이터분석 특화)
---

SQL 실무 패턴 TOP 10

패턴 1: 특정 기간의 매출 분석

SELECT
  DATE(order_date) as date,
  COUNT(*) as order_count,
  SUM(amount) as total_sales
FROM orders
WHERE order_date BETWEEN '2024-01-01' AND '2024-12-31'
GROUP BY DATE(order_date)
ORDER BY total_sales DESC;

패턴 2: 고객별 구매 이력 조회

SELECT
  c.customer_name,
  COUNT(o.id) as purchase_count,
  SUM(o.amount) as total_spent,
  MAX(o.order_date) as last_purchase
FROM customers c
LEFT JOIN orders o ON c.id = o.customer_id
GROUP BY c.id
ORDER BY total_spent DESC;

패턴 3: 부서별 성과 평가

SELECT
  d.department_name,
  COUNT(e.id) as employee_count,
  AVG(e.salary) as avg_salary,
  SUM(p.revenue) as total_revenue
FROM departments d
LEFT JOIN employees e ON d.id = e.dept_id
LEFT JOIN projects p ON e.id = p.owner_id
GROUP BY d.id
HAVING COUNT(e.id) > 0
ORDER BY total_revenue DESC;

---

비용 분석

무료 학습 (0원)

자료수준
Mode Analytics (온라인 튜토리얼)입문
W3Schools SQL입문
YouTube (SQL Tutorial)입문~중급
LeetCode/HackerRank중급

저가 강의 (5만원 이내)

플랫폼가격강점
인프런 SQL 강의49,000원한국인 강사, 실무 중심
코드잇월 9,900원상호작용형
유데미15,000원영어 강의

구직 준비 (30만원)

과정가격기간
SQL + Python + Tableau 패키지300,000원8주
데이터분석 부트캠프400,000원6주
---

취업 준비 SQL 포트폴리오

프로젝트: 온라인 쇼핑몰 데이터 분석

주제: 판매 데이터를 분석하여 마케팅 인사이트 제공

쿼리 예시:

-- 1단계: 상품별 판매 추이
SELECT
  product_name,
  MONTH(order_date) as month,
  COUNT(*) as sales_count,
  SUM(amount) as revenue
FROM orders
WHERE YEAR(order_date) = 2024
GROUP BY product_name, MONTH(order_date)
ORDER BY revenue DESC;

-- 2단계: 고객 세분화
SELECT
  CASE
    WHEN total_spent >= 1000000 THEN 'VIP'
    WHEN total_spent >= 500000 THEN 'Gold'
    ELSE 'Regular'
  END as customer_tier,
  COUNT(*) as customer_count,
  AVG(total_spent) as avg_spent
FROM (
  SELECT
    customer_id,
    SUM(amount) as total_spent
  FROM orders
  GROUP BY customer_id
)
GROUP BY customer_tier;

-- 3단계: 마켓팅 효과 분석
SELECT
  campaign_name,
  COUNT(DISTINCT customer_id) as reach,
  COUNT(*) as conversions,
  ROUND(100.0 * COUNT(*) / COUNT(DISTINCT customer_id), 2) as conversion_rate
FROM marketing_campaigns
GROUP BY campaign_name
ORDER BY conversion_rate DESC;

README 예시:

# 쇼핑몰 데이터 분석

## 데이터셋
- customers: 10,000명
- orders: 50,000건
- products: 500개

## 분석 결과
1. **상품별 판매 추이**
   - iPhone 13: 월 평균 500건 판매
   - MacBook: 월 평균 200건 판매

2. **고객 세분화**
   - VIP 고객(상위 10%): 전체 매출의 60% 차지
   - 재구매율: VIP 80%, Regular 15%

3. **마케팅 효과**
   - SNS 캠페인: 5% 전환율
   - Email 캠페인: 3% 전환율
   - 추천: SNS 마케팅 확대

## 활용 쿼리
- 총 5개 핵심 쿼리
- 모두 GitHub에 저장

---

자주 묻는 질문 (FAQ)

1. SQL이 프로그래밍 언어인가?

A. 아니요, 데이터 질의 언어(Query Language). 훨씬 배우기 쉬움.

2. 수학이 필요한가?

A. 기초 산술만 필요. 복잡한 수학은 불필요.

3. 코딩 경험이 없어도 되나?

A. 네, SQL은 입문자 친화적. 코딩 경험 불필요.

4. 어느 DB를 배워야 하나?

A. 신입은 MySQL 또는 SQLite 추천. 회사가 정하는 경우 많음.

5. SQL만으로 취업 가능한가?

A. 가능하지만 Excel/시각화도 있으면 좋음. SQL이 60%를 차지.

6. 얼마나 빨리 배울 수 있나?

A. 기초 2주, 실무 수준 2개월, 전문가 6개월.

---

최종 SQL 학습 체크리스트

2개월 학습 후:

  • [ ] SELECT, WHERE 완벽 숙달
  • [ ] INNER/LEFT JOIN 이해 완료
  • [ ] GROUP BY, HAVING 자유롭게 사용
  • [ ] 실무 쿼리 10개 자체 개발
  • [ ] 온라인 코딩 문제 50개 해결
  • [ ] 포트폴리오 프로젝트 1개 완성
  • [ ] GitHub에 쿼리 업로드
이 모든 것을 완료하면 데이터분석 초급 취업 가능!

---

관련 콘텐츠: 교육 가이드

✍️
김이도 편집팀
정확한 정보 전달을 위해 전문 자료와 공식 통계를 기반으로 콘텐츠를 작성합니다. 최신 정보 반영을 위해 주기적으로 업데이트됩니다.
📅 최종 업데이트: 2025년 5월 21일 · 📧 문의: 연락하기
📚 교육/자기계발 카테고리 전체 글 보기 →