SQL 초급 입문 – 데이터 분석과 머신러닝을 위한 필수 SQL 기초

Posted by

데이터 사이언스와 머신러닝에서 SQL은 필수적인 도구이다. 대용량 데이터 처리, 데이터 분석, 모델 학습을 위한 데이터 추출에 SQL이 어떻게 활용되는지 기본 개념부터 실습까지 정리해 보도록 하자.

SQL이란? – 데이터 사이언스에서 SQL의 역할

SQL(Structured Query Language)은 데이터베이스에서 데이터를 조회, 조작, 관리하는 언어이다.
데이터 사이언스와 머신러닝 프로젝트에서 SQL은 다음과 같은 역할을 한다.

  • 데이터 탐색 (Exploratory Data Analysis, EDA) – 머신러닝 모델 학습 전 데이터 파악
  • 데이터 전처리 – 이상치 제거, 결측값 처리, 데이터 정리
  • 대규모 데이터 처리 – 빅데이터 플랫폼 (Google BigQuery, AWS Redshift)에서 사용

데이터 사이언스에서 SQL이 중요한 이유

  • 대부분의 기업 데이터는 SQL 기반 데이터베이스에 저장됨
  • Pandas, Spark 같은 데이터 프레임 라이브러리와 SQL 연동 가능
  • 머신러닝 모델 학습 데이터 추출 및 정제

SQL 기본 문법과 실습

SQL에서 가장 중요한 기본적인 데이터 조회 및 조작 기능을 학습해보자.


데이터 조회 (SELECT)

SELECT 문법

SELECT 컬럼명 FROM 테이블명;
SELECT * FROM 테이블명; -- 모든 컬럼 조회

예제
데이터 사이언스 프로젝트에서 자주 활용되는 고객 데이터(customers 테이블)를 가져오는 예제

SELECT customer_id, name, age FROM customers;

활용 예시

  • 특정 고객 그룹의 데이터를 가져와 머신러닝 피처(feature)로 활용할 때 사용

데이터 필터링 (WHERE)

머신러닝 모델 학습을 위해 특정 조건을 만족하는 데이터만 조회하는 방법이다.

WHERE 문법

SELECT * FROM 테이블명 WHERE 조건;

예제
고객 중 나이가 30세 이상인 데이터만 추출

SELECT * FROM customers WHERE age >= 30;

활용 예시:

  • AI 기반 추천 시스템에서 특정 연령대의 사용자 행동 패턴 분석등에 활용

데이터 정렬 (ORDER BY)

특정 컬럼 값을 기준으로 데이터를 정렬할 수 있다.

ORDER BY 문법

SELECT * FROM 테이블명 ORDER BY 컬럼명 [ASC | DESC];

예제
가장 많이 구매한 고객 순으로 정렬

SELECT customer_id, total_spent FROM customer_transactions ORDER BY total_spent DESC;

활용 예시

  • 머신러닝 모델 학습을 위해 매출 상위 고객의 패턴 분석

데이터 그룹화 (GROUP BY) & 집계 함수

SQL을 활용하면 데이터의 집계(Aggregation)가 가능하다.

주요 집계 함수

함수설명
COUNT()행 개수
SUM()합계
AVG()평균
MAX()최대값
MIN()최소값

예제
연령대별 고객 수 분석

SELECT age, COUNT(*) AS customer_count FROM customers GROUP BY age;

활용 예시:

  • AI 모델에서 특정 연령대의 고객 행동 패턴 분석에 활용

데이터 삽입 및 수정

머신러닝 프로젝트에서는 원본 데이터를 변경하는 경우가 거의 없지만, 데이터를 조작하는 기능도 중요하다.

데이터 삽입 (INSERT INTO)

새로운 데이터를 추가하는 방법이다.

INSERT INTO 문법

INSERT INTO 테이블명 (컬럼1, 컬럼2) VALUES (값1, 값2);

예제
신규 고객 데이터 추가

INSERT INTO customers (customer_id, name, age) VALUES (101, 'Alice', 29);

활용 예시:

  • 신규 사용자의 AI 모델 입력 데이터 추가

데이터 수정 (UPDATE)

기존 데이터를 수정할 수 있다.

UPDATE 문법

UPDATE 테이블명 SET 컬럼명 = 값 WHERE 조건;

실습 예제
고객의 나이 업데이트

UPDATE customers SET age = 30 WHERE customer_id = 101;

활용 예시:

  • 고객의 구매 패턴 변화에 따라 AI 추천 알고리즘 업데이트

데이터 삭제 (DELETE)

데이터를 삭제하는 방법이다.

DELETE 문법

DELETE FROM 테이블명 WHERE 조건;

예제
고객 데이터를 삭제

DELETE FROM customers WHERE customer_id = 101;

활용 예시:

  • AI 모델 학습 데이터에서 이상치 제거

SQL 실습 프로젝트 – 머신러닝을 위한 데이터 추출

실제 머신러닝 모델 학습 데이터를 SQL로 추출해보는 예제를 살펴보자.

목표

  • 고객별 구매 이력 분석
  • 머신러닝을 위한 고객 행동 데이터 추출

전체 고객 중 최근 6개월 내 구매한 고객 리스트

SELECT customer_id, name, last_purchase_date FROM customers 
WHERE last_purchase_date >= DATE_SUB(NOW(), INTERVAL 6 MONTH);

고객별 총 구매 금액 계산

SELECT customer_id, SUM(total_spent) AS total_spent FROM customer_transactions
GROUP BY customer_id;

특정 연령대 고객의 구매 패턴 분석

SELECT age, COUNT(*) AS purchase_count FROM customers c
JOIN customer_transactions t ON c.customer_id = t.customer_id
WHERE age BETWEEN 20 AND 30
GROUP BY age;

활용 예시:

  • AI 기반 추천 모델을 위해 고객 행동 데이터 전처리

이번 포스트에서는 간단하게 SQL을 사용하여 table내에 있는 데이터에 접근하는 방법들을 알아 보았다. 데이터 사이언스의 기초가 되는 SQL 문법들을 활용하여 데이터 베이스에 접근하고 사용할 수 있도록 연습하도록 해 보자.

Leave a Reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다