Study/OracleDB

10강 오라클 SQL 주요함수, 숫자함수

슬기로운 개발자 2022. 9. 6. 17:24
728x90

SQL 주요 함수(숫자 함수)

 이 장에서 다룰 내용

1. DUAL 테이블과 SQL 함수 분류

2. 숫자 함수

01. DUAL 테이블과 SQL 함수 분류

■ DUAL 테이블의 구조를 살펴보기 위해서 DESC 명령어를 사용합니다.

DESC DUAL

■ DUAL 테이블은 DUMMY라는 단 하나의 컬럼으로 구성되어 있습니다.

■ 이 컬럼의 최대 길이는 1입니다.

  DUMMY 컬럼엔 과연 어떤 값이 저장되어 있는 것일까요?

SELECT *
FROM DUAL;

■ DUAL 테이블은 DUMMY라는 단 하나의 컬럼에 X라는 단 하나의 로우만을 저장하고 있으나 이 값은 아무런 의미가 없습니다.

■ 쿼리문의 수행 결과가 하나의 로우로 출력되도록 하기 위해서 단 하나의 로우를 구성하고 있을 뿐입니다.

■ 일시적인 산술연산이나, 날짜연산, 고정 문자를 줄 때 DUAL을 사용함.

 

02. 숫자 함수

숫자 함수

2-1 절대값을 구하는 ABS 함수

■ ABS 함수는 절대값을 구합니다.

절대값은 방향은 없고 크기만 있는 것으로서 주어진 데이터가 음수일 경우 양수로 표현합니다.

■ -10에 대한 절대값을 구해봅시다.(10)

SELECT -10, ABS(-10)
FROM DUAL;

ABS 사용법

 

2-2 소수점 아래를 버리는 FLOOR 함수

■ FLOOR 함수는 소수점 아래를 버립니다. 34.5678를 FLOOR 함수에 적용하면 34가 구해집니다.

SELECT 34.5678, FLOOR(34.5678)
FROM DUAL;

FLOOR 함수

select 34.5678, FLOOR(34.5678)

from dual;

 

2-3 특정 자릿수에서 반올림하는 ROUND 함수

■ 34.5678을 반올림하면 35입니다. 이와 같이 반올림한 결과를 구하기 위한 함수로 오라클에서는 ROUND가 제공됩니다.

SELECT 34.5678, ROUND(34.5678)
FROM DUAL;

ROUND 사용법

■ ROUND 함수는 지정한 자릿수에서 반올림을 할 수 있도록 자릿수를 지정할 수 있습니다.

형식 ROUND(대상, 자릿수)

■ ROUND 함수의 두 번째 인자 값이 2이면 소수점 이하 세 번째 자리에서 반올림하여 소수점 이하 두 번째 자리까지 표시합니다. 즉, ROUND(34.5678, 2)의 결과는 34.57이 됩니다.

SELECT 34.5678, ROUND(34.5678, 2)
FROM DUAL;
-- 밑줄친 숫자, 세번째 자리에서 연산함.

ROUND 자릿수 반올림

■ 자릿수에 음수를 지정할 수 있는데 이럴 경우 소수점 이하가 아니라 반대쪽인 일단위, 십단위, 백단위 순으로 거슬러 올라가게 되며, 인자 값이 양수일 때와는 달리 해당 자리에서 반올림이 일어나게 됩니다.

SELECT 34.5678, ROUND(34.5678, -1)
FROM DUAL;

select round(34.5678, -1) FROM dual;

■ ROUND(34.5678, -1)의 결과는 30이 됩니다.

select round(35.5678, -1) FROM dual;

■ ROUND(35.5678, -1)의 결과는 40이 됩니다.

ROUND 음수 반올림

 

2-4 특정 자릿수에서 잘라내는 TRUNC(트렁크) 함수

■ TRUNC 함수는 지정한 자리 수 이하를 버린 결과를 구해주는 함수 입니다.

SELECT TRUNC(34.5678, 2), TRUNC(34.5678, -1), TRUNC(34.5678)
FROM DUAL;

TRUNC 함수

■ TRUNC 함수의 두 번째 인자 값이 2이면 소수점 이하 세 번째 자리에서 버림 연산을 하여 소수점 이하 두 번째 자리까지 표시합니다.

■ 두 번째 인자 값이 0인 경우에는 소수점자리에서 버림 연산을 하고 -1인 경우는 일의 자리에서 버림 연산을 하며 두 번째 인자가 주어지지 않은 경우 0으로 간주 되어 소수점자리에서 버림 연산을 수행합니다.

 

2-5 나머지 구하는 MOD 함수

■ MOD 함수는 나누기 연산을 한 후에 구한 몫이 아닌 나머지를 결과로 되돌려주는 함수입니다.

SELECT MOD(27, 2), MOD(27, 5), MOD(27, 7)
FROM DUAL;

MOD 함수

SELECT MOD(5, 3)
FROM DUAL;

-- 나머지 2..

 

* 탄탄히 다지기

탄탄히 다지기(1)

select * from emp where MOD(empno, 2) = 1;

학습정리.

숫자 함수

 

반응형