[DB] 내장함수

2024. 4. 14. 21:56BE/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