05. SQL(숫자, 문자, 날짜 함수)
05. SQL(숫자, 문자, 날짜 함수)
[toc]
SQL 내장 함수의 활용
이번 학습에서는 SQL에서 자주 사용되는 내장 함수(Built-in Functions)를 실습하였다.
숫자, 문자, 날짜 데이터를 보다 쉽게 가공하거나 분석하는 데 유용한 함수들을 정리하였다.
1. 숫자 함수
함수 | 설명 |
---|---|
ROUND(data, n) | 소수점 n자리에서 반올림 |
TRUNCATE(data, n) | 소수점 n자리에서 버림 |
MOD(a, b) | a를 b로 나눈 나머지 |
CEIL(x) | x보다 크거나 같은 최소 정수 |
FLOOR(x) | x보다 작거나 같은 최대 정수 |
POWER(x, y) | x의 y 제곱 |
1
2
3
4
5
6
SELECT ROUND(986.456, 1);
SELECT TRUNCATE(984.456, 1);
SELECT MOD(10, 3);
SELECT CEIL(4.1);
SELECT FLOOR(7.14);
SELECT POWER(2, 3);
결과
SQL 함수 | 설명 | 결과 |
---|---|---|
ROUND(986.456, 1) | 소수 첫째 자리 반올림 | 986.5 |
TRUNCATE(984.456, 1) | 소수 첫째 자리에서 절삭 | 984.4 |
MOD(10, 3) | 10을 3으로 나눈 나머지 | 1 |
CEIL(4.1) | 올림 | 5 |
FLOOR(7.14) | 내림 | 7 |
POWER(2, 3) | 거듭제곱 (2의 3제곱) | 8 |
2. 문자 함수
함수 | 설명 |
---|---|
LOWER(str) / UPPER(str) | 대소문자 변환 |
LENGTH(str) | 문자열 길이 |
SUBSTR(str, start, length) | 부분 문자열 추출 (1부터 시작) |
INSTR(str, target) | target이 시작되는 위치 |
LPAD(str, n, pad) / RPAD(str, n, pad) | 패딩 문자로 자릿수 맞춤 |
TRIM(str) / LTRIM , RTRIM | 공백 제거 |
REPLACE(str, find, replace) | 문자열 치환 또는 제거 |
1
2
3
4
5
6
7
8
SELECT LOWER('HELLO');
SELECT UPPER('hello');
SELECT LENGTH('SQL');
SELECT SUBSTR('i like cake', 1, 3);
SELECT INSTR('i like cake', 'i');
SELECT LPAD('abc', 8, '*');
SELECT TRIM(' abc ');
SELECT REPLACE('apple', 'ppl', '');
결과
SQL 함수 | 설명 | 결과 |
---|---|---|
LOWER(‘HELLO’) | 문자열을 모두 소문자로 | hello |
UPPER(‘hello’) | 문자열을 모두 대문자로 | HELLO |
LENGTH(‘SQL’) | 문자열 길이 반환 (문자 수) | 3 |
SUBSTR(‘i like cake’, 1, 3) | 1번 문자부터 3개 추출 | i l |
INSTR(‘i like cake’, ‘i’) | 첫 번째 ‘i’의 위치 반환 | 1 |
LPAD(‘abc’, 8, ‘*’) | 왼쪽에 *을 붙여 총 8자 만들기 | *****abc |
TRIM(‘ abc ‘) | 좌우 공백 제거 | abc |
REPLACE(‘apple’, ‘ppl’, ‘’) | ‘ppl’을 빈 문자열로 대체 | ae |
3. 날짜 함수
함수 | 설명 |
---|---|
NOW() | 현재 날짜/시간 |
DAYOFWEEK(date) | 요일 반환 (1=일요일) |
WEEK(date) | 연 중 몇 번째 주인지 반환 |
YEAR() , HOUR() , MINUTE() | 해당 요소 추출 |
DATE_FORMAT(date, format) | 원하는 포맷으로 날짜 변형 |
DATE_ADD(date, INTERVAL n day) | 날짜 연산 |
DATEDIFF(date1, date2) | 두 날짜 간 차이(일 단위) |
1
2
3
4
5
SELECT NOW();
SELECT DAYOFWEEK('2024-08-30');
SELECT DATE_FORMAT(NOW(), '%m-%d');
SELECT DATE_ADD(NOW(), INTERVAL 1 day);
SELECT DATEDIFF(NOW(), DATE_ADD(NOW(), INTERVAL -1 day));
결과
SQL 함수 | 설명 | 예시 결과 (기준: 2025-05-23 기준) |
---|---|---|
NOW() | 현재 날짜와 시간 반환 | 2025-05-23 23:41:00 (시스템 시간 기준) |
DAYOFWEEK(‘2024-08-30’) | 요일 번호 반환 (일:1 ~ 토:7) | 6 (2024-08-30은 금요일 → 6) |
DATE_FORMAT(NOW(), ‘%m-%d’) | 현재 날짜를 월-일 형식으로 출력 | 05-23 |
DATE_ADD(NOW(), INTERVAL 1 DAY) | 현재 날짜에 하루 더함 | 2025-05-24 23:41:00 |
DATEDIFF(NOW(), DATE_ADD(NOW(), INTERVAL -1 DAY)) | 현재 날짜 - 하루 전 날짜 → 날짜 차이 (정수) | 1 |
Summary
- SQL 내장 함수는 데이터를 실시간으로 가공할 수 있도록 도와준다.
- 숫자, 문자, 날짜에 각각 최적화된 함수들이 존재하며, 사용법은 단순하지만 매우 강력하다.
- 실무에서는 복잡한 쿼리 대신 간결한 함수 조합으로 원하는 결과를 빠르게 얻을 수 있다.
End