-
SQL SUBSTRING() 활용법: 데이터 분석가의 필수 도구🐬 MySQL/MySQL 함수 2024. 11. 27. 16:46728x90
2024.11.30 - [데이터베이스/MySQL 실습문제] - SQL SUBSTRING() 함수를 이용한 연습문제 10개
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;
쉽게 생각하기
문장을 가위로 자른다고 생각하세요!
문장: 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'
- 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부터 시작하는 프로그래밍 언어와 다름).
- 문자열 길이를 초과하는 추출을 요청해도 오류가 발생하지 않습니다.
- 다국어 문자셋을 사용할 때는 문자 단위로 처리되는지 확인이 필요합니다.
728x90'🐬 MySQL > MySQL 함수' 카테고리의 다른 글
SQL CONCAT() 활용법 : 데이터 조합의 핵심 도구 (1) 2024.11.27 SQL CHAR_LENGTH() 함수: 초보자도 쉽게 이해하는 문자열 길이 측정 (0) 2024.11.27 SQL REVERSE() : 문자열을 뒤집는 마법 (0) 2024.11.27 REPLACE() 함수 마스터하기 : 쉽고 강력한 문자열 교체 기법 (0) 2024.11.27 SQL UPPER()와 LOWER() : 대소문자 변환의 마법 (0) 2024.11.27