[DB] 내장함수
2024. 4. 14. 21:56ㆍBE/DB
1. 내장함수
가. 숫자
함수 | 설명 |
ABS(x) | x의 절대값을 반환 |
CEILING(x) | x보다 크거나 같은 가장 작은 정수를 반환 (올림) |
FLOOR(x) | x보다 작거나 같은 가장 큰 정수를 반환 (내림) |
ROUND(x, d) | x를 d 소수점 자리에서 반올림 |
TRUNCATE(x, d) | x를 소수점 자릿수 d 까지 버림. |
POW(x, y) | x의 y 거듭제곱 값을 반환 |
MOD(x, y) | x를 y로 나눈 나머지를 반환 |
GREATEST(x, y, z, ...) | 인수 중 가장 큰 값을 반환 |
LEAST(x, y, z, ...) | 인수 중 가장 작은 값을 반환 |
// 올림 : 크거나 같은 가장 작은 정수
select ceiling(12.2), ceiling(-12.2)
from dual;
// 13 -12
// 내림 : 작거나 같은 가장 큰 정수
select floor(12.2), floor(-12.2)
from dual;
// 12 -13
ceiling
, floor
가 주어진 숫자가 음수일 때 조심한다.
select round(43210.123), round(43210.123, 0), round(43210.123, 1), round(43210.123, 2), round(43210.123, -1), round(43210.123, -2)
from dual
-- 출력 : 43210 43210 43210.1 43210.12 43210 43200
- 자릿수 계산하는 방법 : -3 -2 -1 0 . 1 2 3
나. 문자 관련 내장 함수
함수 | 설명 |
ASCII(x) | 문자열 x의 첫 번째 문자의 ASCII 코드 값을 반환 |
CONCAT(x, y) | 문자열 x와 y를 연결하여 반환 |
INSERT(x, pos, len, y) | 문자열 x의 pos 위치부터 len 길이만큼 문자를 문자열 y로 대체 |
REPLACE(x, y, z) | 문자열 x에서 문자열 y를 문자열 z로 바꾸어 반환 |
INSTR(x, y) | 문자열 x에서 문자열 y가 시작되는 첫 번째 위치를 반환 |
LEFT(x, n) | 문자열 x에서 왼쪽부터 n 길이만큼의 부분 문자열을 반환 |
RIGHT(x, n) | 문자열 x에서 오른쪽부터 n 길이만큼의 부분 문자열을 반환 |
MID(x, pos, len) | 문자열 x에서 pos 위치부터 len 길이만큼의 부분 문자열을 반환 (pos는 1부터) |
SUBSTRING(x, pos, len) | 문자열 x에서 pos 위치부터 len 길이만큼의 부분 문자열을 반환 (pos는 1부터) |
LTRIM(x) | 문자열 x의 왼쪽 부분의 공백을 제거 |
RTRIM(x) | 문자열 x의 오른쪽 부분의 공백을 제거 |
TRIM(x) | 문자열 x의 양쪽 부분의 공백을 제거 |
LENGTH(x) | 문자열 x의 byte 크기를 반환 (한글은 3byte로 인식된다.) |
CHAR_LENGTH(x) | 문자열 x의 글자수를 반환 |
BIT_LENGTH(x) | 문자열 x의 bit 크기를 반환 |
REPEAT(x, cnt) | 문자열 x를 cnt만큼 반복한 문자열 반환 |
1.LENGTH() : 길이를 bytes로 나타낸다.
SELECT LENGTH('한글') -> 6
SELECT LENGTH('abc') -> 3
2.CHAR_LENGTH() : 글자의 수를 나타낸다.
SELECT CHAR_LENGTH('한글') -> 2
SELECT CHAR_LENGTH('abc') -> 3
3.BIT_LENGTH() : 길이를 bit로 나타낸다.
SELECT BIT_LENGTH('한글a') -> 56
SELECT BIT_LENGTH('한글') -> 48
다. 날짜
함수 | 설명 |
NOW() | SELECT 문이 실행된 시점의 날짜와 시간을 반환 |
CURRENT_TIMESTAMP() | SELECT 문이 실행된 시점의 날짜와 시간을 반환 |
SYSDATE() | 함수 호출 시점의 날짜와 시간을 반환 |
CURDATE() | 현재 날짜를 반환 |
CURRENT_DATE() | 현재 날짜를 반환 |
CURTIME() | 현재 시간을 반환 |
CURRENT_TIME() | 현재 시간을 반환 |
DATE_ADD(date, INTERVAL value unit) | 주어진 date에 value unit을 더한 날짜를 반환 |
DATE_SUB(date, INTERVAL value unit) | 주어진 date에서 value unit을 빼낸 날짜를 반환 |
YEAR(date) | date의 연도를 반환 |
MONTH(date) | date의 달을 반환 |
MONTHNAME(date) | date의 달 이름을 반환 |
DAYNAME(date) | date의 요일 이름을 반환 |
DAYOFMONTH(date) | date의 월 중 일자를 반환 |
DAYOFWEEK(date) | date의 주 중 일자를 반환 (일:1, 월:2, …, 토:7) |
WEEKDAY(date) | date의 주 중 일자를 반환 (월:1, 화:2, …, 일:6) |
DAYOFYEAR(date) | date의 연 중 일자를 반환 |
WEEK(date) | date의 주차를 반환 |
FROM_DAYS(N) | N일 후의 날짜를 반환 |
TO_DAYS(date) | 주어진 date로 부터 몇일째인지 반환 |
DATE_FORMAT(date, format) | date를 format에 따라 형식화하여 반환 |
PERIOD_DIFF(date1, date2) | 두 날짜 간의 개월 수 차이를 반환 (YYYYMM or YYMM) |
DATEDIFF(date1, date2) | 두 날짜 간의 일 수 차이를 반환 (YYYYMM or YYMM) |
TIMEDIFF(time1, time2) | 두 시간 간의 시간 차이를 반환 (YYYYMM or YYMM) |
'BE > DB' 카테고리의 다른 글
[DB] Transaction (1) | 2024.04.14 |
---|---|
[DB] SET Operator (0) | 2024.04.14 |
[DB] NULL, CASE, ESCAPE (0) | 2024.04.14 |
[SQL] SQL 예시 정리 (0) | 2023.08.29 |
[mySQL] 사용자 추가, 권한 부여,삭제 (0) | 2023.07.04 |