따라서 문자열 조작은 문자열 값을 조작하고 특정 형식으로 변환하는 일반적인 작업입니다.
문자열 작업을 처리하는 SQL의 가장 강력한 함수 중 하나는 REGEXP_REPLACE() 함수입니다. 이 기능을 사용하면 정규식 기반 검색 및 바꾸기를 수행할 수 있습니다. 정규식에 익숙하다면 이 기능이 얼마나 강력한지 알 수 있습니다.
이 튜토리얼에서는 이 기능을 사용하여 SQL 데이터베이스에서 문자열을 검색하고 바꾸는 방법을 알아봅니다.
SQL REGEXP_REPLACE
SQL REGEXP_REPLACE()는 주어진 문자열 내에서 정규식 기반 패턴 일치 및 교체를 수행할 수 있게 해주는 함수입니다.
정규식 또는 regex는 특정 패턴을 따르는 문자열 또는 하위 문자열을 일치시키고 조작할 수 있는 설정된 패턴이자 자리 표시자입니다.
각 데이터베이스 엔진은 함수의 구문과 기능을 조금씩 구현할 수 있다는 점을 염두에 두는 것이 좋습니다.
그러나 구문을 다음과 같이 표현할 수 있습니다.
REGEXP_REPLACE(input_string, 패턴, 교체 [, 플래그])
함수 매개변수는 다음과 같이 표현됩니다.
- input_string - 검색하고 바꾸려는 문자열을 지정합니다.
- 패턴 – 입력 문자열 내에서 일치시키려는 정규식 패턴을 지정합니다.
- 대체 – 일치하는 하위 문자열을 대체할 문자열을 지정합니다.
- 플래그 – 정규식의 기능을 수정하는 데 도움이 될 수 있는 선택적 플래그 집합입니다. 예를 들어 전역 검색, 대소문자 구분 일치 등을 활성화할 수 있습니다. 이 기능은 데이터베이스 엔진에 따라 다릅니다.
예:
이 기능의 작동 방식을 더 잘 이해하기 위해 사용 방법에 대한 몇 가지 예를 살펴보겠습니다.
예 1: 기본 사용법
다음 예제 출력과 같이 직원 정보가 포함된 테이블이 있다고 가정합니다.
'Charlie' 문자열을 'Matthew'로 바꾸고 싶은 경우를 생각해 보세요. 쿼리를 다음과 같이 사용할 수 있습니다.
선택하다REGEXP_REPLACE(first_name, '찰리', '매튜') AS new_name
에서
직원;
주어진 예에서는 'first_name' 열에서 'Charlie' 문자열을 찾아 'Matthew'로 바꾸는 기본 검색 및 바꾸기를 보여줍니다.
산출:
예 2: 대소문자를 구분하지 않는 교체
경우에 따라 대소문자를 구분하지 않고 검색을 수행해야 할 수도 있습니다. 즉, 함수는 문자열 내용만 확인하고 영숫자 문자의 실제 대/소문자는 확인하지 않습니다.
이러한 경우 다음과 같이 'i'를 함수 플래그로 사용합니다.
SELECT REGEXP_REPLACE(product_description, Samsung, Apple, 'i') 수정됨제품에서;
플래그를 'i'로 설정하면 대소문자에 관계없이 'Samsung'과 일치하는 모든 단어와 일치합니다.
결론
이 예에서는 REGEXP_REPLACE() 함수를 사용하고 작업하여 정규식 패턴 기반 검색 및 바꾸기를 수행하는 방법을 살펴보았습니다.