본문 바로가기

Study/OracleDB

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

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;

학습정리.

숫자 함수

 

반응형

'Study > OracleDB' 카테고리의 다른 글

12강 오라클 SQL 날짜함수.  (2) 2022.09.08
11강 오라클 SQL 문자함수  (0) 2022.09.06
9강 오라클 SQL Like, sort 정렬  (4) 2022.09.06
8강 오라클 논리연산자, Between in  (1) 2022.09.06
7강 오라클 SQL 조건연산자  (4) 2022.09.05