hanker

SQL - 문자열 바꾸기 (MySQL / MSSQL / Oracle / PostgreSQL) 본문

DATABASE/SQL

SQL - 문자열 바꾸기 (MySQL / MSSQL / Oracle / PostgreSQL)

hanker 2024. 11. 22. 00:46
반응형

각 DBMS 별로 문자열을 변경하는 방법에 대해서 알아보자!
 
 

1. MySQL

 

문자열 내에서 일치하는 부분을 새 문자열로 바꿔주는 REPLACE 함수
 
○ REPLACE(문자열, 찾을_문자열, 바꿀_문자열)

SELECT REPLACE('Hanker eeee', 'eeee', '!!!!');
-- 결과: 'Hanker !!!!'

 
 

정규 표현식을 통해서 문자열을 치환하는 REGEXP_PLACE 함수
 
REGEXP_REPLACE(문자열, 정규표현식, 바꿀_문자열)

SELECT REGEXP_REPLACE('Hanker123123', '[0-9]+', '');
-- 결과: 'Hanker'

REGEXP_PLACE 함수는 MySQL 8.0 이상에서 사용이 가능하다.

 
 
 

2. MSSQL

 

문자열 내에서 일치하는 부분을 새 문자열로 바꿔주는 REPLACE 함수
 
○ REPLACE(문자열, 찾을_문자열, 바꿀_문자열)

SELECT REPLACE('Hanker eeee', 'eeee', '!!!!');
-- 결과: 'Hanker !!!!'

 
 

문자열의 일부를 다른 문자열로 대체하는 STUFF 함수
 
○ STUFF(문자열, 시작위치, 길이, 바꿀_문자열)

SELECT STUFF('Hanker abcdef', 8, 6, 'STUFF');
-- 결과: 'Hanker STUFF'

 
 

문자열 내의 개별 문자를 다른 문자로 대체하는 TRANSLATE 함수

 

TRANSLATE(문자열, 찾을_문자들, 바꿀_문자들)

SELECT TRANSLATE('Hanker NICE', 'aer', 'AER');
-- 결과: 'HAnkER NICE'

TRANSLATE() 함수는 MSSQL 2017 이상에서 사용할 수 있다.
 

반응형

 

3. Oracle 

 

문자열 내에서 일치하는 부분을 새 문자열로 바꿔주는 REPLACE 함수
 
○ REPLACE(문자열, 찾을_문자열, 바꿀_문자열)

SELECT REPLACE('Hanker ABC', 'ABC', '!!!') FROM dual;
-- 결과: 'Hanker !!!'

 
 

정규 표현식을 통해서 문자열을 치환하는 REGEXP_PLACE 함수
 
○ REGEXP_REPLACE(문자열, 정규표현식, 바꿀_문자열)

SELECT REGEXP_REPLACE('Hanker 123456789', '[0-9]+', '') FROM dual;
-- 결과: 'Hanker'

 
 

REGEXP_PLACE 함수는 Oracle 10g 이상에서 사용가능하다.

 
 

문자열 내의 개별 문자를 다른 문자로 대체하는 TRANSLATE 함수

 

○ TRANSLATE(문자열, 찾을_문자들, 바꿀_문자들)

SELECT TRANSLATE('Hanker NICE', 'aer', 'AER') FROM dual;
-- 결과: 'HAnkER NICE'

 
 
 

4. PostgreSQL

 

문자열 내에서 일치하는 부분을 새 문자열로 바꿔주는 REPLACE 함수
 
○ REPLACE(문자열, 찾을_문자열, 바꿀_문자열)

SELECT REPLACE('Hanker ABC', 'ABC', '!!!');
-- 결과: 'Hanker !!!'

 
 

정규 표현식을 통해서 문자열을 치환하는 REGEXP_PLACE 함수
 
○ REGEXP_REPLACE(문자열, 정규표현식, 바꿀_문자열)

SELECT REGEXP_REPLACE('Hanker 123456789', '[0-9]+', '');
-- 결과: 'Hanker'

REGEXP_PLACE 함수는 PostgreSQL 8.4 이상에서 사용가능하다.

 
 

문자열의 일부를 다른 문자열로 대체해주는 OVERLAY 함수
 
○ OVERLAY(문자열 PLACING 바꿀_문자열 FROM 시작위치 [FOR 길이])

SELECT OVERLAY('Hanker abcdef' PLACING 'OVERLAY' FROM 8 FOR 6);
-- 결과: 'Hanker OVERLAY'

OVERLAY 함수는 PostgreSQL 9.0 이상에서 사용이 가능하다.
 
 
 

정리

 

- REPLACE() 함수는 원본 문자열을 수정하지 않고, 변경된 결과를 반환한다.
- 문자열 내의 모든 일치 항목이 새로운 문자열로 치환된다.
- 대소문자를 구분하여 문자열을 찾기 때문에, 대소문자를 무시하고 싶다면 추가적인 함수(예: LOWER() 또는 UPPER())와 결합하여 사용해야 한다.
 
 
 
 
! 정규식이란 ?
https://hanke-r.tistory.com/entry/%EC%A0%95%EA%B7%9C%EC%8B%9D%EC%9D%B4%EB%9E%80-%EC%A0%95%EA%B7%9C-%ED%91%9C%ED%98%84%EC%8B%9D-Regular-Expression-Regex

정규식이란 ..?  (정규 표현식, Regular Expression, Regex)

프로그래밍이나, 데이터베이스 관리에서 문자열 처리의 중요한 도구로 사용되는 정규식에 대해서 알아보자. 추천사이트 https://regex101.com/ regex101: build, test, and debug regexRegular expression tester with s

hanke-r.tistory.com

 

반응형