이 글에서 꼭 잡아야 할 것
문자 함수는 텍스트 데이터를 다듬고 비교하는 데 필수적이다. 이름, 주소, 코드, 이메일처럼 문자열 중심 데이터가 많은 실무에서는 사용 빈도가 매우 높다.
문자 함수는 문자열 자체를 가공할 뿐 아니라, 조건절과 정렬, 그룹화의 전처리 단계로도 많이 쓰인다. 다만 컬럼에 함수를 적용하면 인덱스 활용에 영향을 줄 수 있으므로 읽기 편의와 성능 사이 균형을 함께 생각하는 습관이 필요하다.
개념 지도와 이해 포인트
대표 문법 패턴
SELECT first_name,
UPPER(first_name) AS upper_name,
SUBSTR(first_name, 1, 3) AS first_three
FROM employees;
SELECT email,
INSTR(email, '@') AS at_position
FROM contacts;
문법 읽는 포인트
- `SUBSTR`은 시작 위치와 길이를 함께 줄 수 있다.
- `INSTR`은 찾는 문자열이 없으면 0을 반환한다.
- 검색 일관성을 위해 비교 전 `UPPER` 또는 `LOWER`로 통일하는 경우가 많다.
핵심 용어
- UPPER
- SUBSTR
- INSTR
이메일 아이디와 도메인 분리하기
문자 함수는 보고서용 가공에도 유용하지만, 데이터를 규칙 단위로 잘라 내는 전처리에서도 자주 쓰인다. 문자열 구조를 눈으로 먼저 분해해 보면 필요한 함수가 더 잘 보인다.
SELECT email,
SUBSTR(email, 1, INSTR(email, '@') - 1) AS email_id,
SUBSTR(email, INSTR(email, '@') + 1) AS email_domain
FROM contacts
ORDER BY email;
수험 체크포인트와 자주 하는 실수
시험 체크포인트
- `SUBSTR`의 시작 위치와 길이 인자 순서를 정확히 기억하자.
- `INSTR`가 0을 반환하는 상황을 묻는 문제가 자주 나온다.
- 문자 함수 결과를 WHERE 절에 바로 쓰는 유형은 실제 데이터 변형 과정을 떠올리면 빠르게 풀린다.
자주 하는 실수
- `SUBSTR`의 두 번째 인자를 길이로 오해하는 실수
- 대소문자 구분이 필요한 비교와 불필요한 비교를 구분하지 못하는 실수
- 문자 함수 적용 결과가 NULL일 수 있는 상황을 놓치는 실수
연결 학습
문자 데이터 가공이 익숙해졌다면 이제 숫자 계산과 반올림으로 넘어갈 수 있다. 다음 챕터에서는 숫자 함수를 정리한다.
댓글 0
작성자 이름과 댓글 내용을 입력하면 바로 등록됩니다. 답글은 한 단계까지 지원하고, 댓글은 최대 200자까지 작성할 수 있습니다.
같은 카테고리에서 이어서 읽기
지금 읽은 글과 가까운 흐름의 글 5개를 모아 두었습니다. 바로 앞뒤 문맥을 이어서 읽고 싶을 때 가장 편합니다.
논리 연산자와 BETWEEN, IN, LIKE
조건이 하나일 때보다 여러 조건이 섞일 때 실수가 많이 나온다. AND, OR, NOT과 BETWEEN, IN, LIKE를 이해하면 실제 업무형 SQL에 훨씬 가까워진다.
NULL 처리와 NVL, COALESCE, NULLIF
NULL은 값이 0인 것도, 빈 문자열인 것도 아닌 특별한 상태다. NULL을 제대로 이해하지 못하면 비교, 집계, 정렬, 함수 결과에서 계속 오답이 생긴다.
ORDER BY와 정렬, 별칭 활용
정렬은 결과를 해석하는 마지막 단계다. ORDER BY를 이해하면 보고서형 SQL을 더 읽기 쉽게 만들 수 있고, 여러 정렬 기준을 설계하는 감각도 생긴다.
숫자 함수: ROUND, TRUNC, MOD, CEIL, FLOOR
숫자 함수는 계산 결과를 비즈니스 규칙에 맞게 다듬는 도구다. 반올림, 버림, 나머지 계산 같은 기본 기능만 정확히 익혀도 보고서와 통계형 SQL 품질이 높아진다.
날짜 함수: SYSDATE, ADD_MONTHS, MONTHS_BETWEEN
날짜는 SQL에서 가장 자주 틀리는 데이터 타입 중 하나다. 오라클은 날짜 전용 함수가 풍부하기 때문에, 형 변환 대신 전용 함수를 정확히 쓰는 습관이 매우 중요하다.
댓글을 불러오는 중입니다.