일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- IntelliJ
- mssql
- Python
- 티스토리챌린지
- java
- github
- spring
- JPA
- SQL
- MongoDB
- mysql
- 명령어
- PostgreSQL
- MariaDB
- 추상클래스
- 트랜잭션
- Javascript
- pandas
- oracle
- Linux
- group by
- 리눅스
- docker
- DBMS
- 오블완
- analytics4
- rsync
- 호이스팅
- git
- 자바
- Today
- Total
hanker
SQL - 문자열 바꾸기 (MySQL / MSSQL / Oracle / PostgreSQL) 본문
각 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