컴퓨터 과학/데이터 베이스

MySQL SUBSTRING 함수로 데이터 가공하기

Data Jun 2025. 8. 17. 21:35

데이터 분석이나 SQL 쿼리 작성에서 자주 쓰이는 함수 중 하나가 바로 **SUBSTRING()**입니다.
문자열에서 특정 구간만 잘라내는 기능을 제공하기 때문에, 고객 주소, 전화번호, 아이디 등 다양한 텍스트 데이터 처리에 유용하게 활용할 수 있습니다.

 

이번 글에서는 다음 쿼리 예시를 가지고 SUBSTRING()의 활용법을 살펴보겠습니다.

SELECT DISTINCT(SUBSTRING(address, 1, 2)) 
FROM copang_main.member;

 

 

SUBSTRING 함수 기본 문법

SUBSTRING(string, start, length)
  • string: 잘라낼 대상 문자열
  • start: 잘라내기 시작할 위치 (1부터 시작)
  • length: (선택사항) 잘라낼 길이. 지정하지 않으면 시작 위치부터 끝까지 반환

예시:

SELECT SUBSTRING('HelloWorld', 1, 5);  -- 결과: Hello
SELECT SUBSTRING('HelloWorld', 6);     -- 결과: World

 

예제 쿼리 분석

SELECT DISTINCT(SUBSTRING(address, 1, 2)) 
FROM copang_main.member;

 

address 컬럼에서 문자열 추출
→ SUBSTRING(address, 1, 2) 는 주소 값의 앞에서 2글자를 잘라냅니다.

  • 서울특별시 강남구 … → 서울
  • 경기도 성남시 … → 경기
  • 부산광역시 해운대구 … → 부산
  • 예:

DISTINCT 사용
→ 중복된 값은 제거하고 고유한 지역명 앞 두 글자만 가져옵니다.

  • 최종 결과 예:

 

 

서울
경기
부산
대전
인천
...​

 

즉, 이 쿼리는 회원들의 주소 데이터를 이용해, 회원들이 어느 지역(시·도)에서 왔는지를 추출하는 기능을 하는 셈입니다.


활용 포인트

  • 주소 데이터에서 시·도 단위를 빠르게 추출 가능
  • 전화번호에서 앞 3자리(통신사 식별) 추출 가능
  • 이메일에서 도메인 일부만 가져오기 가능

정리

  • SUBSTRING()은 문자열 데이터에서 원하는 구간을 잘라낼 때 유용하다.
  • 시작 위치는 1부터 시작하며, 길이를 지정하지 않으면 끝까지 가져온다.
  • DISTINCT와 함께 사용하면 고유한 값만 추출할 수 있다.
  • 주소, 전화번호, 이메일 등 다양한 텍스트 데이터 처리에 널리 활용할 수 있다.

이번 예제처럼 SUBSTRING(address, 1, 2)를 활용하면, 대량의 주소 데이터에서 간단히 시·도 단위 분류를 할 수 있어 분석 효율성을 높일 수 있습니다.