SQL

[ MySQL, Oracle ] SUBSTRING, SUBSTR, REGEXP_SUBSTR

hminor 2024. 10. 19. 17:55

1. MySQL의 SUBSTRING 함수

설명:

SUBSTRING 함수는 문자열의 특정 위치에서 지정한 길이만큼의 부분 문자열을 반환하는 함수입니다.

SUBSTRING(string, start_position, length)

 

  • string: 원본 문자열
  • start_position: 추출을 시작할 위치 (1부터 시작)
  • length: 추출할 문자열의 길이 (생략 시 끝까지 반환)

구문:

SUBSTRING(string, start_position, length)

예시:

SELECT SUBSTRING('Hello World', 7, 5) AS result;

 

결과:

result
------
World

이 예시에서, "Hello World" 문자열에서 7번째 문자부터 5글자를 추출하므로 결과는 "World"가 됩니다.

 


 

2. Oracle의 SUBSTR 함수

설명:

Oracle에서는 SUBSTR 함수가 동일한 역할을 수행합니다. 구문과 사용법이 MySQL과 유사하지만 함수 이름이 SUBSTR이라는 점만 다릅니다.

구문:

SUBSTR(string, start_position, length)

예시:

SELECT SUBSTR('Hello Oracle', 7, 6) AS result FROM dual;

결과:

result
------
Oracle

이 경우, "Hello Oracle"에서 7번째 문자부터 6글자를 추출하므로 결과는 "Oracle"이 됩니다.


 

3. MySQL의 REGEXP_SUBSTR 함수

설명:

REGEXP_SUBSTR 함수는 정규 표현식에 맞는 패턴을 추출하는 함수입니다. 패턴 매칭을 통해 좀 더 복잡한 문자열 조작을 수행할 수 있습니다.

구문:

REGEXP_SUBSTR(string, pattern, start_position, occurrence, match_type)
 
  • string: 원본 문자열
  • pattern: 정규 표현식 패턴
  • start_position: 패턴 검색을 시작할 위치
  • occurrence: 매칭할 패턴의 발생 순서 (기본값 1)
  • match_type: 매칭 방식 (생략 가능)

예시:

SELECT REGEXP_SUBSTR('abc123def456', '[0-9]+', 1, 1) AS result;

결과:

 
result
------
123

이 쿼리는 "abc123def456" 문자열에서 처음으로 나타나는 숫자 패턴을 추출하며, 결과는 "123"이 됩니다.


4. Oracle의 REGEXP_SUBSTR 함수

설명:

Oracle의 REGEXP_SUBSTR 함수는 MySQL과 동일하게 정규 표현식을 사용하여 문자열에서 특정 패턴을 추출하는 기능을 제공합니다.

구문:

REGEXP_SUBSTR(string, pattern, start_position, occurrence, match_type)

예시:

SELECT REGEXP_SUBSTR('abc123def456', '[0-9]+', 1, 2) AS result FROM dual;

결과:

result
------
456

이 경우, 두 번째로 나타나는 숫자 패턴을 추출하므로 결과는 "456"이 됩니다.


결론

  • MySQL의 SUBSTRING 함수와 Oracle의 SUBSTR 함수는 단순한 문자열 추출을 위한 함수입니다.
  • MySQL과 Oracle의 REGEXP_SUBSTR 함수는 정규 표현식을 사용하여 복잡한 패턴을 추출할 때 사용됩니다.

이처럼 문자열을 다루는 함수들은 데이터 조작에 매우 유용하며, 각각의 특징을 이해하고 적절히 사용하면 다양한 상황에서 유용한 데이터를 추출할 수 있습니다.