강좌

HOME > 강좌 >
강좌| 리눅스 및 오픈소스에 관련된 강좌를 보실 수 있습니다.
 
수치 연산함수
조회 : 6,386  


수치 연산함수
1. RAND 함수
RAND 함수는 구간 [ 0, 231]에서 균일 분포(uniform distribution) 값을 정수로 반환한다.
1) 구문
RAND( )
2) 예제
다음은 0과 231사이의 임의 정수를 반환하는 예제이다.
SELECT RAND() FROM db_root;
2. DRAND 함수
DRAND 함수는 구간 [0.0, 1.0]에서 균일 분포 값을 배정도(double-precision) 부동 소수점 숫자로 반환한다.
1) 구문
DRAND( )
2) 예제
다음은 0.0과 1.0 사이의 임의 정수를 반환하는 예제이다.
SELECT DRAND() FROM db_root;
3. ROUND 함수
ROUND 함수는 숫자를 지정한 자리수로 반올림한 값을 반환하며, 반환 값의 타입은 인자의 타입과 같다.
1) 구문
ROUND( number_operand, integer )
number_operand : 반올림할 숫자를 나타낸다.
integer : 반올림하여 나타낼 소수점 자릿수를 나타낸다. 값이 음수이면 소수점을 기준으로 왼쪽에서 반올림한다.
반환 값의 타입은 number_operand와 같은 타입이다.
2) 예제
다음은 15.456을 반올림하여 소수점 둘째 자리까지 표현하는 예제이다.
SELECT ROUND(15.456, 2) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
round(15.456, 2)
================
15.460
1 rows selected.
다음은 15.456을 반올림하여 소수점 첫째 자리까지 표현하는 예제이다.
SELECT ROUND(15.456, 1) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
round(15.456, 1)
================
15.500
1 rows selected.
다음은 소수점 아래에서 반올림하여 정수부만 표현하는 예제이다.
SELECT ROUND(15.456, 0) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
round(15.456, 0)
================
15.000
1 rows selected.
다음은 15.456을 반올림하여 정수부 첫째 자리에서 반올림한 값을 표현하는 예제이다.
SELECT ROUND(15.456, -1) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
round(15.456, -1)
=================
20.000
1 rows selected.
4. CEIL 함수
CEIL 함수는 인자보다 크거나 같은 최소 정수 값을 반환하며, 반환 값의 타입은 인자의 타입과 같다.
1) 구문
CEIL( number_operand )
number_operand : 올림할 숫자를 나타낸다.
2) 예제
다음은 10.145를 정수로 올림하여 표현하는 예제이다.
SELECT CEIL(10.145) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
ceil(10.145)
============
11
1 rows selected.
다음은 10을 정수로 올림하여 표현하는 예제이다.
SELECT CEIL(10) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
ceil(10)
========
10
1 rows selected.
다음은 -10.145를 정수로 올림하여 표현하는 예제이다.
SELECT CEIL(-10.145) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
ceil(-10.145)
=============
-10
1 rows selected.
다음은 -10을 정수로 올림하여 표현하는 예제이다.
SELECT CEIL(-10) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
ceil(-10)
=========
-10
1 rows selected.
5. FLOOR 함수
FLOOR 함수는 인자보다 작거나 같은 최대 정수 값을 반환하며, 반환 값의 타입은 인자의 타입과 같다.
1) 구문
FLOOR( number_operand )
number_operand : 내림할 숫자를 나타낸다.
2) 예제
다음은 10.145을 정수로 내림하여 표현하는 예제이다.
SELECT FLOOR(10.145) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
floor(10.145)
=============
10
1 rows selected.
다음은 10을 정수로 내림하여 표현하는 예제이다.
SELECT FLOOR(10) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
floor(10)
=========
10
1 rows selected.
다음은 -10.145를 정수로 내림하여 표현하는 예제이다.
SELECT FLOOR(-10.145) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
floor(-10.145)
==============
-11
1 rows selected.
다음은 -10을 정수로 내림하여 표현하는 예제이다.
SELECT FLOOR(-10) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
floor(-10)
==========
-10
1 rows selected.
6. MOD 함수
MOD 함수는 첫 번째 인자를 두번재 인자로 나눈 나머지를 반환한다.

MOD 함수의 전형적인 연산, 'm-n*FLOOR(m/n)'과는 의미가 다르다.

다음의 표는 MOD 함수의 결과를 나타낸 것이다.
m n MOD(m. n) Classical Modulus m-n*FLOOR(m/n)
 9  5  4  4
-9  5 -4  1
 9 -5  4 -1
-9 -5 -4 -4
 9  0  9  0으로 나누기 에러
1) 구문
MOD( number_operand_m, number_operand_n )
첫 번째 인자인 number_operand_m을 두 번째 인자인 number_operand_n으로 나눈 나머지를 반환한다.
number_operand_m : 나누어 지는 수, 즉 피제수를 나타낸다.
number_operand_n : number_operand_m을 나누는 수, 즉 제수를 나타낸다. 값이 0이면 number_operand_m을 그대로 반환한다.
2) 예제
다음은 10.945를 0.4로 나눈 나머지를 반환하는 예제이다.
SELECT MOD(10.945, 0.4) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
mod(10.945, 0.4)
================
0.145
1 rows selected.
7. POWER 함수
POWER 함수는 입력된 숫자의 거듭제곱을 반환하며 반환 값의 타입은 첫 번째 인자의 타입과 같다. 결과의 자릿수나 소수점 이하 자릿수가 너무 크거나 너무 작은 경우에는 오버플로우나 절단이 발생할 수 있다.
1) 구문
POWER( base_operand, exponent_operand )
base_operandexponent_operand 제곱 값을 반환한다. base_operand 값이 음수인 경우에는 지수인 exponent_operand는 반드시 정수여야 한다.
base_operand : 거듭 제곱할 수를 나타낸다.
exponent_operand : 거듭 제곱에서 지수를 나타낸다.
2) 예제
다음은 5의 3.1승을 반환하는 예제이다.
SELECT POWER(5, 3.1) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
power(5, 3.1)
=============
146.8
1 rows selected.
다음은 9.05의 2.1승을 반환하는 예제이다.
SELECT POWER(9.05, 2.1) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
power(9.05, 2.1)
================
102.085
1 rows selected.
다음은 -9.05의 3승을 반환하는 예제이다.
SELECT POWER(-9.05, 3) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
power(-9.05, 3)
===============
-741.22
1 rows selected.
다음은 -5의 3.2승을 반환하는 예제이다.
SELECT POWER(-5, 3.2) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
power(-5, 3.2)
==============
error
error.
8. ABS 함수
ABS 함수는 입력된 숫자의 절대값을 반환하며, 반환 값의 타입은 주어진 인자의 타입과 같다.
1) 구문
ABS( number_operand )
number_operand : 절대값을 구할 수를 지정한다.
2) 예제
다음은 -0.5의 절대값을 반환하는 예제이다.
SELECT ABS(-0.5) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
abs(-0.5)
=========
0.5
1 rows selected.
9. SIGN 함수
SIGN 함수는 숫자 값의 부호를 반환한다. 양수이면 1을, 음수이면 -1을, 0이면 0을 반환한다.
1) 구문
SIGN( number_operand )
number_operand : 부호를 반환할 수를 지정한다.
2) 예제
다음은 -15.03의 부호를 반환하는 예제이다.
SELECT SIGN(-15.03) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
sign(-15.03)
============
-1
1 rows selected.
10. TRUNC 함수
TRUNC 함수는 입력된 숫자를 지정된 자릿수까지 자른값을 반환하며 반환 값의 타입은 첫 번째 인자의 타입과 같다.
1) 구문
TRUNC( number_operand, integer )
number_operand : 원본 숫자를 지정한다.
integer : 값이 잘릴 위치를 지정한다. 값이 음수이면, 소수점 기준 왼쪽에서 버림한 값을 반환한다.
2) 예제
다음은 235.1538을 소수점 둘째 자리까지만 반환하는 예제이다.
SELECT TRUNC(235.1538, 2) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
trunc(235.1538, 2)
==================
235.1500
1 rows selected.
다음은 235.1538을 소수점 첫째 자리까지만 반환하는 예제이다.
SELECT TRUNC(235.1538, 1) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
trunc(235.1538, 1)
==================
235.0000
1 rows selected.
다음은 235.1538의 정수부만 반환하는 예제이다.
SELECT TRUNC(235.1538, 0) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
trunc(235.1538, 0)
==================
235.0000
1 rows selected.
다음은 235.1538에서 정수부 첫째 자리 이하는 버림한 값을 반환하는 예제이다.
SELECT TRUNC(235.1538, -1) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
trunc(235.1538, -1)
===================
230.0000
1 rows selected.
다음은 235.1538에서 정수부 둘째 자리 이하는 버림한 값을 반환하는 예제이다.
SELECT TRUNC(235.1538, -2) FROM db_root;
=== <Result of SELECT Command in Line 1> ===
trunc(235.1538, -2)
===================
200.0000
1 rows selected.

[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1626


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
큐브리드