SQL SUBSTRING() 활용법: 데이터 분석가의 필수 도구
2024.11.30 - [데이터베이스/MySQL 실습문제] - SQL SUBSTRING() 함수를 이용한 연습문제 10개
SQL SUBSTRING() 함수를 이용한 연습문제 10개
2024.11.27 - [데이터베이스/MySQL 문자열 함수] - SQL SUBSTRING() 활용법: 데이터 분석가의 필수 도구 SQL SUBSTRING() 활용법: 데이터 분석가의 필수 도구SQL SUBSTRING(): 문자열 조작의 강력한 도구오늘은 SQL에
itstory05.tistory.com
SQL SUBSTRING(): 문자열 조작의 강력한 도구
SQL에서 문자열 처리의 핵심 함수인 SUBSTRING()에 대해 자세히 알아보겠습니다.
SUBSTRING() 함수는 문자열에서 특정 부분을 추출하는 데 사용되며, 데이터 정제와 분석에 매우 유용한 도구입니다.
SUBSTRING() 함수의 기본 구문
SUBSTRING() 함수의 기본 구문은 데이터베이스 시스템에 따라 약간 다를 수 있지만, 일반적으로 다음과 같은 형태를 가집니다.
SUBSTRING(string, start, length)
SUBSTRING(문자열, 시작위치, 길이)
string: 대상 문자열
- 자르고 싶은 대상 문자열 예: "Hello World"
start: 추출을 시작할 위치 (1부터 시작)
- 문자열에서 자르기를 시작할 위치
length: 추출할 문자의 개수 (선택적)
- 마나 많은 글자를 추출할 건지 정하는 부분
SUBSTRING() 사용 예시
예제1. 기본 사용법
SELECT substring('Hello World', 1, 5);
"Hello World"에서 1번 위치부터 5글자를 가져와라.
결과: 'Hello'

예제2. 중간에서 자르기
SELECT substring('Hello World', 7, 5);
"Hello World"에서 7번 위치부터 5글자를 가져와라.
결과: 'World'
예제3. 숫자처럼 사용
SELECT substring('2024-11-27', 6, 2);
날짜 "2024-11-27"에서 6번 위치부터 2글자를 가져와라.
결과: '11' (월(month) 부분만 추출!)
예제4. 문자열 끝에서부터 추출
SELECT SUBSTRING('Hello World', -5) AS result;
뒤에서부터 5번째 글자까지 가져와라
결과: 'World'
SUBSTRING()의 실제 활용 사례
언제 사용할까?
텍스트 일부 추출: 이름, 이메일, 주소 등에서 특정 부분만 뽑을 때.
예: 이메일 "abc@gmail.com"에서 사용자 이름만 추출하기 (substring(email, 1, 3))
SELECT
email,
SUBSTRING(email, POSITION('@' IN email) + 1) AS domain
FROM users;
데이터 형식 변환: 날짜나 코드 같은 형식에서 특정 부분을 추출할 때.
예: "2024-11-27"에서 연도만 추출하기 (substring(date, 1, 4)).
SELECT
date_string,
SUBSTRING(date_string, 1, 4) AS year
FROM events;
전화번호 형식화
SELECT
phone_number,
CONCAT(
'(',
SUBSTRING(phone_number, 1, 3),
') ',
SUBSTRING(phone_number, 4, 3),
'-',
SUBSTRING(phone_number, 7)
) AS formatted_number
FROM contacts;
쉽게 생각하기
문장을 가위로 자른다고 생각하세요!
- substring('Hello World', 1, 5) → 'Hello'
- substring('Hello World', 7, 5) → 'World'
문장: H e l l o W o r l d
위치: 1 2 3 4 5 6 7 8 9 10 11
substring('Hello World', 1, 5) → 'Hello'/ 1번 시작부터 5칸
substring('Hello World', 7, 5) → 'World'/ 7번 시작부터 5칸
SUBSTRING() 사용 시 주의사항.
- 인덱스는 1부터 시작합니다 (0부터 시작하는 프로그래밍 언어와 다름).
- 문자열 길이를 초과하는 추출을 요청해도 오류가 발생하지 않습니다.
- 다국어 문자셋을 사용할 때는 문자 단위로 처리되는지 확인이 필요합니다.