본문 바로가기
IT 공부/SQL

SQL - (12) 함수

by Happy_Bin 2025. 7. 30.

📚 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에서, 데이터를 특정 조건에 따라 다른 값으로 치환할 수 있게 해준다.

sql
복사편집
SELECT 이름, CASE 성별 WHEN 'M' THEN '남성' WHEN 'F' THEN '여성' ELSE '기타' END AS 성별표기 FROM 회원;

🔍 활용 팁

  • 컬럼 값이 조건에 따라 의미 있는 라벨로 바뀌어야 할 때
  • 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