컴퓨터/MySQL

MySQL (11) - 내장함수를 이용하여 숫자를 다뤄보자

달서비 2023. 4. 2. 22:58

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가 반환됩니다.