📚 SQL 함수 총정리 — 문자, 숫자, 날짜, 형변환, NULL, CASE

SQL에서 함수(Function)는 데이터를 가공하고 처리하는 가장 작은 연산 단위다.
입력된 값을 계산하거나 가공해서 새로운 값을 반환하는 코드 덩어리,
즉 "데이터를 다루는 손"이라고 볼 수 있다.
SQL 함수는 두 가지 종류가 있다:
- 내장 함수: DBMS가 기본 제공하는 함수들
- 사용자 정의 함수 (UDF): 사용자가 직접 정의한 함수
이번 글에서는 실무와 시험에 자주 등장하는 내장 함수를 전 영역에 걸쳐 정리한다.
단순한 암기용이 아니라, 왜 이게 중요한지, 어떻게 활용되는지 중심으로 살펴보자.
✨ 1. 문자 함수 (String Functions)
문자열을 조작하고 다듬는 함수들.
데이터의 가독성과 정제에 매우 중요하다.
| 함수 | 설명 | 예시 |
| LOWER(str) | 문자열을 모두 소문자로 변환 | 사용자 입력 정규화 |
| UPPER(str) | 문자열을 모두 대문자로 변환 | 코드값 비교 일치 |
| CHR(n) | ASCII 코드에 해당하는 문자 반환 | 특수문자 생성 |
| TRIM(str) | 양쪽 끝 공백 제거 | 입력값 정제 |
| LTRIM(str) | 왼쪽 공백 제거 | 포맷 정리 |
| RTRIM(str) | 오른쪽 공백 제거 | 정렬 보정 |
| SUBSTR(str, start, len) | 부분 문자열 추출 | 이름, 코드 파싱 |
| LENGTH(str) | 문자열 길이 반환 | 입력 제한 검사 |
| REPLACE(str, a, b) | 문자열 내 a를 b로 대체 | 정규화, 필터링 |
🔍 활용 팁
- 사용자 입력값을 비교할 땐 LOWER나 UPPER로 통일
- 특정 구간의 데이터 추출엔 SUBSTR + LENGTH 조합
- 문자열 클렌징 시 TRIM과 REPLACE 필수
🔢 2. 숫자 함수 (Numeric Functions)
숫자 데이터를 처리하는 기본 연산 도구.
집계, 통계, 계산 로직에 반드시 필요하다.
| 함수 | 설명 | 예시 |
| ABS(n) | 절댓값 반환 | 거리 계산, 변화율 |
| MOD(a, b) | 나머지 반환 | 짝/홀 구분, 패턴 |
| ROUND(n, d) | 반올림 | 평균 점수, 가격 |
| TRUNC(n, d) | 자릿수 버림 | 금액 절삭 |
| SIGN(n) | 부호 판단 (-1, 0, 1) | 증감 비교 |
| CEIL(n) | 올림 | 최소 단위 확보 |
| FLOOR(n) | 내림 | 최대 허용 한계 |
🔍 활용 팁
- 가격 계산 시 소수점 처리에 ROUND / TRUNC 조합
- 비율 비교 또는 변동성 분석엔 SIGN 활용
- 시간단위 반올림에도 CEIL, FLOOR 사용 가능
📆 3. 날짜 함수 (Date Functions)
시간은 모든 데이터의 기반이다.
날짜 관련 함수는 이력 관리, 기간 비교, 분석 지표에서 반드시 필요하다.
| 함수 | 설명 | 활용 |
| SYSDATE | 현재 날짜/시간 반환 | 오늘 기준 데이터 조회 |
| EXTRACT(YEAR/MONTH/DAY FROM date) | 날짜에서 특정 구성 추출 | 연도별/월별 집계 |
🔍 활용 팁
- SYSDATE로 기간 조건 걸기: WHERE 등록일자 >= SYSDATE - 30
- EXTRACT는 집계용 GROUP BY에 자주 쓰임
🔄 4. 형변환 함수 (Conversion Functions)
컬럼은 각기 다른 타입을 가진다.
문자 ↔ 숫자 ↔ 날짜 간의 변환은 연산, 비교, 출력에 필수다.
| 함수 | 설명 |
| TO_NUMBER(str) | 문자열 → 숫자 변환 |
| TO_CHAR(expr) | 숫자/날짜 → 문자열 변환 |
| TO_DATE(str) | 문자열 → 날짜 변환 |
형변환은 2종류
- 명시적 형변환: SQL 작성자가 직접 TO_XXX 함수 사용
- 암시적 형변환: DBMS가 자동으로 내부 변환
🔍 활용 팁
- 날짜 필터는 TO_DATE로 명확히 지정
- 숫자 포맷을 출력용 문자열로 바꿀 땐 TO_CHAR(값, '999,999')
🕳️ 5. NULL 관련 함수
SQL에서 NULL은 ‘값이 없음’이다.
0이 아니고, 빈 문자열도 아니며, 비교도 불가능하다.
따라서 NULL 처리 함수는 데이터 완성도에서 매우 중요하다.
| 함수 | 설명 |
| NVL(a, b) | a가 NULL이면 b 반환 |
| NULLIF(a, b) | a와 b가 같으면 NULL, 다르면 a |
| COALESCE(a, b, c, ...) | 가장 처음 NULL이 아닌 값 반환 |
🔍 활용 팁
- NVL(할인금액, 0) → Null인 경우 0 처리
- COALESCE는 기본값 지정에 가장 유용함
- NULLIF(성별, 'N') → ‘N’이면 NULL 처리
🧩 6. CASE 함수
CASE는 조건 분기 처리를 위한 SQL의 유일한 논리문이다.
IF문이 없는 SQL에서, 데이터를 특정 조건에 따라 다른 값으로 치환할 수 있게 해준다.
🔍 활용 팁
- 컬럼 값이 조건에 따라 의미 있는 라벨로 바뀌어야 할 때
- CASE WHEN 조건 THEN 값 구문은 복잡한 필터링에도 활용 가능
✅ 정리하며
함수는 SELECT 문에서 단순한 도우미가 아니다.
데이터를 정제하고, 해석하고, 가공하는 전방위 도구다.
SELECT로 데이터를 ‘꺼낸다면’,
함수는 그 꺼낸 데이터를 가공하는 ‘손’이다.
SQL을 다룰수록 함수는 선택이 아니라 필수가 된다.
그리고 어떤 함수가 필요한지 판단하는 감각은
데이터의 구조, 흐름, 사용 목적을 이해할 때 비로소 생긴다.
📮 BeanSight | 해피빈(HappyBin)
데이터의 본질은 식별에서 시작된다.
관계는 흐름을 만들고, 식별자는 구조를 완성한다.
'IT 공부 > SQL' 카테고리의 다른 글
| SQL - (14) GROUP BY, HAVING절 (2) | 2025.08.01 |
|---|---|
| SQL - (13) WHERE절 (4) | 2025.07.31 |
| SQLD - (11) SELECT 문 (1) | 2025.07.29 |
| SQLD - (10) 관계형 데이터베이스 개요 (1) | 2025.07.26 |
| SQLD - (9) 식별자 (2) | 2025.07.25 |