본문 바로가기
IT개발

데이터베이스 문자함수(LOWER, UPPER, TRIM, SUBSTR, REPLACE)

by 팀모 2023. 10. 13.

이번 포스팅은 데이터베이스에서 많이 사용하는 문자열함수에 대해 알아보도록 하겠습니다.

1. LOWER(문자열string) - 소문자로 전환

SELECT LOWER('TeamMoca') FROM DUAL;
LOWER(string) 결과값

2. UPPER(문자열string) - 대문자로 전환

SELECT UPPER('TeamMoca') FROM DUAL;
UPPER(string) 결과값

3. TRIM(문자열) - 문자열 양옆 공백제거

*주의할점 : 중간에 공백이 있는경우는 중간에 있는 공백은 제거 안됨!

SELECT TRIM('    teammoca    ') FROM DUAL;
SELECT TRIM('    t e a   mmoca    ') FROM DUAL;


4. LTRIM(문자열) - 왼쪽부터 공백제거

*주의할점 : 중간에 공백이 있는경우는 중간에 있는 공백은 제거 안됨!

SELECT LTRIM('    teammoca') FROM DUAL;
SELECT LTRIM('    team   moca') FROM DUAL;

5. LTRIM(문자열, [제거할문자]) - [ ]에 들어있는 문자제거

왼쪽부터 한글자씩 비교해서 제거하되 없을경우 멈춤

--1. 'T'제거 문자열 맨 앞에 T가 있으니 제거하고 return
SELECT LTRIM('TeamMoca','T') FROM DUAL;
--2. 'T'를 제거해야하나 앞에 T가아닌 공백이 있으므로 그대로 return;
SELECT LTRIM('     TeamMoca','T') FROM DUAL;
--3. 'a'를 제거해야하나 앞에 a가 아닌 T가 있으므로 그대로 return; 
SELECT LTRIM('TeamMoca','a') FROM DUAL;
--4. 'Team'제거 문자열 왼쪽부터 차례대로 Team이 제거되서 'Moca' return;
SELECT LTRIM('TeamMoca','Team') FROM DUAL;

6. RTRIM(문자열) - 오른쪽부터 공백제거

*주의할점 : LTRIM과 마찬가지로 중간에 공백이 있는경우는 중간에 있는 공백은 제거 안됨!

SELECT RTRIM('teammoca    ') FROM DUAL;

7. RTRIM(문자열, [제거할문자]) - [ ]에 들어있는 문자제거 오른쪽부터 한글자씩 비교해서 제거하되 없을경우 멈춤

--1. 'a'제거 문자열 맨 뒤에 a가 있으니 제거하고 return
SELECT RTRIM('TeamMoca','a') FROM DUAL;
--2. 'a'를 제거해야하나 뒤에 a가아닌 공백이 있으므로 그대로 return;
SELECT RTRIM('TeamMoca    ','a') FROM DUAL;
--3. 'm'를 제거해야하나 앞에 m이 아닌 a가 있으므로 그대로 return; 
SELECT RTRIM('TeamMoca','m') FROM DUAL;
--4. 'Moca'제거 문자열 오른쪽부터 Moca 제거되서 'Team' return;
SELECT LTRIM('TeamMoca','Moca') FROM DUAL;

8. SUBSTR(문자열, 시작점(1부터시작), [자를 길이]) -  문자열 중 원하는 부분만 자름

세번째 인자값 [자를 길이]가 없을경우 시작점~문자열 끝까지 return

--1. 2번째문자열 ‘e'부터 잘라서 끝까지 return
SELECT SUBSTR('TeamMoca',2) FROM DUAL;
--2. 2번째문자열 ’e'부터 3글자만 잘라서 return
SELECT SUBSTR('TeamMoca',2, 3) FROM DUAL;

9. REPLACE(문자열, 변경 전 문자열 , [변경 후 문자열])

문자열에서 변경 전 문자열을 찾아 변경 후 문자열로 바꿔줌 3번째 인자값 [변경 후 문자열]값을 넣지 않을경우는 변경전 문자열을 찾아서 전체 제거

--1. 'a'를 찾아서 제거 후 return
SELECT REPLACE('TeamMoca','a') FROM DUAL;
--2. 'a'를 찾아서 '*'로 변경 후 return
SELECT REPLACE('TeamMoca','a', '*') FROM DUAL;