본문 바로가기

프로그래밍/DataBase

[DataBase]문자함수

문자함수란

 단일행 함수 중 하나로, SELECT, WHERE, ORDER BY절에 사용할 수 있으며, 다중행 함수와는 달리 ROW마다 한번 씩 처리하는 함수이다.

 연산 대상이 문자이며, 반환 값은 함수에 따라 숫자 또는 문자를 반환한다.

 

문자함수에는 대소문자 변환함수문자 조작함수 두가지 종류가 있다.

 

 

 대소문자 변환함수

함수 내용
UPPER(문자열) ()안의 문자 데이터를 모두 대문자로 변환하여 반환한다.
LOWER(문자열) ()안의 문자 데이터를 모두 소문자로 변환하여 반환한다.
INITCAP ()안의 문자 데이터 중 첫 글자는 대문자로, 나머지 문자를 소문자로 변환 후 반환한다.

 

 

문자 조작함수

CONCAT(expr1, expr2)

 

칼럼과 칼럼을 이어 하나의 문자로 보여주는 함수이다.

예를 들어 CONCAT(first_name, last_name)을 받게 되면 풀네임 컬럼으로 만들어 보여줄 수 있다.

 

 

사용 예시

SELECT CONCAT('DAVID', 'AUSTIN')
FROM dual;

출력 결과

= DAVIDAUSTIN

 

 

 

SUBSTR(expr1, expr2, expr3)

문자열의 일부분을 반환해주는 함수이다.

expr1 : 반환할 문자열
expr2 : 시작위치
expr3 : 끝 위치 (생략가능, 생략 시 시작위치에서 끝까지 반환)

 

 

사용 예시

SELECT SUBSTR(901223 - 1234567, 1, 6)
FROM dual;

 

출력 결과

= 901223

 

 

LENGTH(expr1)

 받은 인수의 문자열 길이를 반환해 준다. 

 

 

사용 예시

SELECT LENGTH('oracle')
from dual;

 

출력 결과

= 6

 

 

INSTR(expr1, expr2)

문자열(expr1)로부터 특정문자(expr2)의 첫 번째 위치값을 반환해 주는 함수이다.

 

 

사용 예시

SELECT instr('HelloWorld', 'o')
FROM dual;

 

출력 결과

= 5

 

 

LPAD(expr1, expr2, expr3)

칼럼이나 대상 문자열을 명시된 자리수에서 오른쪽 정렬을 하고 남은 왼쪽 자리는 특정 기호로 채운다.

expr1 : 반환할 문자열
expr2 : 전체 자리 수
expr3 : 남는 공간을 채울 문자

 

 

사용 예시

SELECT LPAD('Oracle', 10, '#')
FROM dual;

 

출력 결과

= '####Oracle'

 

RPAD(expr1, expr2, expr3)

칼럼이나 대상 문자열을 명시된 자리수에서 왼쪽 정렬을 하고 남은 오른쪽 자리는 특정 기호로 채운다.

 

expr1 : 반환할 문자열
expr2 : 전체 자리 수
expr3 : 남는 공간을 채울 문자

 

 

사용 예시

SELECT RPAD('Oracle', 10, '#') 
FROM dual;

 

출력 결과

= Oracle####

 

 

TRIM(expr1 from expr2)

인수를 2개 받으면서 ,가 아닌from으로 인수를 구분해준다.
문자열 expr2로 부터 특정문자 expr1이 접두어나 접미어에 있다면 삭제해주는 함수.

 

사용 예시

SELECT trim('H' from 'HelloWorld')
FROM dual;

 

출력 결과

= 'elloWorld'

 

 

REPLACE(expr1, expr2, expr3)

문자열(expr1)로 부터 특정문자(expr2)를 다른문자(expr3)로 교체해주는 함수

 

사용 예시

SELECT replace('Hello oracle','oracle','World')
FROM dual;

 

출력 결과

= 'Hello World'

 

 

'프로그래밍 > DataBase' 카테고리의 다른 글

[DateBase]그룹함수  (0) 2021.04.05
[DataBase]일반 함수  (0) 2021.03.31
[DateBase]ORDER BY  (0) 2021.03.23
[DataBase]WHERE  (0) 2021.03.22
[DataBase]AS  (0) 2021.03.22