🐬 MySQL/MySQL 함수

SQL SUBSTRING() 활용법: 데이터 분석가의 필수 도구

itstory(Booho) 2024. 11. 27. 16:46
728x90

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;

 

쉽게 생각하기

문장을 가위로 자른다고 생각하세요!

 

문장: 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. 인덱스는 1부터 시작합니다 (0부터 시작하는 프로그래밍 언어와 다름).
  2. 문자열 길이를 초과하는 추출을 요청해도 오류가 발생하지 않습니다.
  3. 다국어 문자셋을 사용할 때는 문자 단위로 처리되는지 확인이 필요합니다.

 

728x90
반응형