CS
[SQLD] 함수의 개요 및 문자함수
2026년 02월 13일 11:15
SQLD 2과목 – 함수의 개요 및 문자함수
함수 개요
데이터를 가공·변환·계산하여 새로운 결과를 반환하는 객체이다.
SELECT, WHERE, GROUP BY, HAVING, ORDER BY 절에서 사용 가능하다.
함수의 분류
① 입력값 수 기준
- 단일행 함수: 1행 → 1결과
- 복수행 함수(집계 함수): 여러 행 → 1결과
② 입·출력 타입 기준
- 문자 함수
- 숫자 함수
- 날짜 함수
- 변환 함수
- 일반 함수
문자 함수
1. UPPER / LOWER / INITCAP
- UPPER : 대문자 변환
- LOWER : 소문자 변환
- INITCAP : 첫 글자만 대문자
SELECT UPPER('hdatalab'), -- 'HDATALAB'
LOWER('HDATALAB'), -- 'hdatalab'
INITCAP('hdatalab') -- 'Hdatalab'
FROM DUAL;
2. LENGTH / LENGTHB
- LENGTH : 문자 수 반환
- LENGTHB : Byte 수 반환
- 한글은 캐릭터셋에 따라 2~4Byte
SELECT LENGTH('제주도') -- 3
LENGTHB('제주도') -- 6
FROM DUAL;
3. CONCAT
- 두 문자열을 결합
- 두 개만 결합 가능
SELECT CONCAT('AB', 'CD') -- 'ABCD'
FROM DUAL;
※ Oracle에서는 || 연산자 사용 가능
4. SUBSTR
- 문자열 일부 추출
SUBSTR(문자열, 시작위치 [, 추출개수])
특징
- 시작위치가 0보다 작으면 뒤에서부터 검색
- 추출개수 생략 시 -1
- 결과는 문자 타입
SELECT SUBSTR('서울시 강남구', 1, 3) -- '서울시'
FROM DUAL;
-- 문자열에서 첫번째 글짜부터 세 글자를 추출하여 출력함
5. INSTR
- 문자열 내 특정 문자열의 위치 반환
INSTR(문자열, 찾을문자열 [, 시작위치] [, 몇번째])
특징
- 시작위치 생략 시 1
- 시작위치 < 0 → 뒤에서부터 검색
- 발견횟수 생략 시 1로 설정되어 첫번째로 발견되는 문자열의 위치 반환
- 찾는 문자열 없으면 0 반환
SELECT INSTR('123#45#6#789#0', '#') -- 4
FROM DUAL;
-- 문자열에서 첫번째 위치부터 검색하여 가장 처음발견되는 # 위치를 숫자로 반환
6. LPAD / RPAD
- 문자열 왼쪽/오른쪽에 특정 문자 삽입
LPAD(문자열, 총길이 [, 삽입문자])
RPAD(문자열, 총길이 [, 삽입문자])
특징
- 삽입문자 생략 시 공백 삽입
- 총길이는 Byte 기준
SELECT LPAD('abcd', 10, '*') -- '******abcd'
FROM DUAL;
-- abcd 문자열 왼쪽에 *을 삽입하여 전체 크기가 10Byte가 되도록 출력
7. LTRIM / RTRIM
- 문자열 왼쪽/오른쪽의 특정 문자 제거
LTRIM(문자열 [, 제거문자])
RTRIM(문자열 [, 제거문자])
특징
- 제거문자 생략 시 공백 제거
- 연속된 문자만 제거
SELECT LTRIM('###AB#C', '#') -- 'AB#C'
FROM DUAL;
-- ###AB#C 문자열에서 왼쪽부터 연속된 # 문자만 제거
8. TRIM
- 문자열 양쪽 공백 제거
- 제거문자 지정 불가 (공백만 제거)
TRIM(문자열)
SELECT TRIM(' AB ') -- 'AB'
FROM DUAL;
-- 양쪽에서 공백이 제거된 후 총 2자 길이의 문자열 반환
9. REPLACE
- 문자열 치환 또는 삭제
REPLACE(문자열, 찾을문자열 [, 바꿀문자열])
특징
- 바꿀문자열 생략 시 삭제
SELECT REPLACE('ABCBA', 'AB', 'ab'), -- 'abCBA'
REPLACE('ABCBA', 'AB', ''), -- 'CBA'
REPLACE('ABCBA', 'AB') -- 'CBA'
FROM DUAL;
-- 바꿀 문자열을 생략하거나 빈 문자열을 전달하면 찾을 문자열이 삭제됨
10. TRANSLATE
- 문자 단위 1:1 치환
TRANSLATE(문자열, 찾을문자열, 바꿀문자열)
특징
- 문자 단위 매핑
- 길이 불일치 시
- 찾을문자열이 더 길면 남는 문자 삭제
- 바꿀문자열이 더 길면 남는 문자 무시
SELECT TRANSLATE('ABCBA', 'AB', 'ab') -- 'abCba'
FROM DUAL;
-- 'A'와 'B'가 각각 대응되는 문자 'a', 'b'로 치환되어 출력
11. CHR
- ASCII 코드값에 해당하는 문자 반환
CHR(숫자)
특징
- ASCII 코드 10은 줄바꿈 문자
- ASCII 코드 65은 'A'
- ASCII 코드 97은 'a'
SELECT 'AB' || CHR(10) || 'CD'
FROM DUAL;
-- AB
-- CD
-- SQL 출력 화면에서는 줄바꿈이 적용되지 않아 'ABCD'로 출력됨
