SQL을 다룰 때 문자만큼이나 숫자 형식도 많이 다루게 됩니다. 문자열 내장함수에 이어 숫자를 조작하는 내장함수를 알아보도록 하겠습니다.
※ 함수 설명을 중심으로 내용을 진행합니다.
※ 제가 자주 사용한 함수는 ★로 표시하였습니다.
숫자 함수정리
ABS (★)
SELECT ABS(-1004) -- 1004
FROM DUAL;
ABS 함수는 절댓값으로 반환하는 함수입니다. 해당 예제에서는 1004로 반환합니다.
SIGN
SELECT SIGN(1004) --1
FROM DUAL;
SIGN 함수는 숫자가 양수인 경우에는 1 음수 일때는 -1을 반환하며, 0일 때는 0을 반환합니다. 위의 예제에는 1을 반환합니다.
POW, SQRT (★)
SELECT POW(3,2), SQRT(16) -- 9, 4
FROM DUAL;
POW 함수는 숫자1^숫자2제곱 값을 구합니다. 예제에서는 3^2 = 9가 반환됩니다.
SQRT 함수는 숫자의 제곱근 값을 구합니다. 예제에서는 루트 16의 값 4가 반환됩니다.
MOD (★)
SELECT MOD(17, 3), 17 % 3, 17 MOD 3 -- 2 2 2
FROM DUAL;
MOD 함수는 숫자1을 숫자2로 나눈 나머지 값을 구합니다 세 가지 방식으로 표현할 수 있으며 예제에서는 전부다 2로 출력합니다.
ROUND, CEILING, FLOOR
SELECT ROUND(3.99), CEILING(3.99), FLOOR(3.99) --4 4 3
FROM DUAL;
ROUND, CEILING, FLOOR 함수는 각각 반올림, 올림, 내림을 의미하는 함수입니다. 참고로 반올림은 5 미만의 숫자는 버리며 5 이상이면 올림을 합니다. 예제에서는 각각 4, 4, 3을 출력합니다.
RAND
SELECT RAND() - 0부터 1미만의 무작위 실수
FROM DUAL
RAND 함수는 0 이상 1 미만의 무작위 실수를 구합니다. 실제로 사용할 때는 int(rand()*45 + 1) 등의 방식으로 가공하여 사용할 수 있습니다.
TRUNCAGTE
SELECT TRUNCATE(314.1592, 1), -- 314.1
TRUNCATE(314.1592, -1) -- 310
FROM DUAL;
TRUNCATE 함수는 소수점의 자리까지 구하고 나머지는 버림 하는 함수입니다. 예제에서 314.1592라는 실수를 소수점 한자리까지 받아 314.1이 출력되었으며, -1을 인자로 입력하여 1의 자리까지 버리는 값으로 310이 나왔습니다.
CONV
SELECT CONV(100, 10, 2) -- CONV(num, 사용 중인 진수, 변환할 진수)
FROM DUAL;
CONV 함수는 진수를 바꾸는 함수입니다. 기존 진수의 숫자를 변환할 지수로 계산 후 반환합니다. 위에서는 100이라는 10진수를 2진수로 변환하는 예제로 144가 반환됩니다.
'컴퓨터 > MySQL' 카테고리의 다른 글
MySQL (13) - 프로시저(Procedure)와 함수(Function) (0) | 2023.05.01 |
---|---|
MySQL (12) - 집계함수에 대하여 알아보자 (COUNT, SUM, AVG, MIN, MAX) (0) | 2023.04.05 |
MySQL (10) - Transaction(트랜잭션)에 대하여 알아보자 (0) | 2023.03.23 |
MySQL (9) - 내장함수를 이용하여 글자를 다뤄보자 (0) | 2023.03.16 |
MySQL (8) - 기본키를 여러 개 두어야 할 때 (복합키) (0) | 2023.03.11 |