본문 바로가기

Database/sql 강의

sql 독학 강의 # 단일행 함수 잘 사용 하기(숫자 함수) 5편 -sTricky

sql 독학 강의 # 단일행 함수 잘 사용 하기(숫자 함수) 5편 -sTricky

 

 

컨텐츠 index

1. round 함수 사용 하기

2. truncate 함수 사용 하기

3. mod 한수 사용 하기

4. ceil 함수 사용 하기

5. floor 함수 사용 하기

6. power 함수 사용 하기

안녕하세요. 

 

이번 독학 강의 시간은 단일행 함수 잘 사용 하기 中 숫자 함수 편입니다.

 

지난 시간에는 단일행 함수 중에서도 문자 함수에 관해서 공부를 했었습니다.

 

이번에는 숫자 함수 사용하는 방법에 관해서 배워 보겠습니다.

 

숫자 함수도 여러 가지 다양하게 많이 있지만, 대표적으로 사용하는 6가지를 기준으로 설명드리고, 나머지 함수들에 관해서는 궁금하실 경우 댓글로 문의하시기 바랍니다.

 

사실 그렇게 어렵지 않고, 간단할 수 있습니다.

 

조금만 신경 쓰시면 금방 이해하고 넘어갈 수 있습니다.

 

그럼 시작해보겠습니다.

 

#지난 독학 강의 보러 가기#

2020/03/23 - [Database/sql 강의] - sql 공부 강의 # 단일행 함수 잘 사용 하기(문자 함수) 4편 -sTricky

 

sql 공부 강의 # 단일행 함수 잘 사용 하기(문자 함수) 4편 -sTricky

sql 공부 강의 # 단일행 함수 잘 사용 하기(문자 함수) 4편 -sTricky 컨텐츠 index 0. SQL 함수의 정의 1. lower/upper 함수 사용 하기 2. length 함수 사용 하기 3. concat 함수 사용 하기 4. substr/mid 함수..

stricky.tistory.com


1. round 함수 사용 하기

round 함수는 입력된 숫자를 반올림한 후 출력하는 함수입니다.

 

옵션을 통해서 반올림 자릿수를 설정할 수 있습니다.

 

아래 SQL예제를 보겠습니다.

#숫자 함수 테스트부터는 특정 테이블에 데이터를 입력하지 않고 직접 SQL문 안에 데이터를 넣어서 예문을 작성하겠습니다. ex) select 123 from dual;

select round(112.3456,1),round(112.3456,2),round(112.3456,-1)
from dual;

 

 

위 예문을 설명드리겠습니다.

 

총 3개의 결과를 한 SQL에서 출력을 했는데 첫 번째 round(112.3456,1) 에서 112.3456 은 입력된 데이터 값 입니다. 여기다가 테이블 안에 있는 데이터라면 컬럼값을 쓰면 되겠죠. 

 

뒤에 있는 1은 옵션입니다. 소수점 아래 첫번째 자리까지 표시하라는 겁니다. 즉, 소수점 아래 두 번째 자리에서 반올림하면 되겠죠.

 

두 번째 예문을 보시면 옵션이 2닌깐 소숫점 아래 두번째 자리까지 표시해라, 즉 세 번째 자리에서 반올림을 하면 되겠죠. 아래 결과를 보시면 이해가 되시리라 생각합니다.

 

세 번째 예문에 있는 '-1' 옵션은 소수점이 아니라 일의 자리에서 반올림하라는 뜻의 옵션입니다. 이해가 되겠죠?

 

2. truncate 함수 사용 하기

truncate 함수는 round 함수와 사용법과 옵션의 의미가 같습니다. truncate 함수의 기능은 입력된 값을 옵션에 따라 지정된 위치에서 버리고 결과를 출력하는 함수입니다.

 

예문으로 확인하겠습니다.

#oracle에서는 trunc 함수로 사용됩니다.

select truncate(112.3456,1),truncate(112.3456,2),truncate(112.3456,-1)
from dual;

 

 

 

round 함수와 truncate 함수의 사용법은 같습니다.

 

3. mod 함수 사용 하기

mod 함수는 처음 입력된 값을 두 번째 입력된 값으로 나눈 뒤 나눈 값을 제외하고 나머지를 결과로 출력하는 함수입니다.

 

아래 예문을 보도록 하겠습니다.

select mod(26,3),mod(10,9),mod(4,2)
from dual;

 

 

첫 번째 예문 mod(26,3)을 함께 보겠습니다. 26을 3으로 나누면 몫은 8이고, 나머지 2가 남습니다. 그래서 2를 출력합니다. 두 번째 예문인 mod(10,9)를 보면 10을 9로 나누면 몫은 1이며 나머지 역시 1이 남습니다. 마지막 예문은 4를 2로 나누게 되면 몫 2를 가지고 나머지는 없겠죠? 그래서 0이 출력이 되는 겁니다.

 

쉽게 이해될 거라 생각됩니다.

 

4. ceil 함수 사용 하기

ceil 함수는 입력된 숫자보다 크면서도, 가장 가까운 운 정수가 출력됩니다.

 

예문을 통해서 확인해보도록 하겠습니다.

select ceil(12.6),ceil(11.5),ceil(16.3)
from dual;

 

 

첫 번째 예문인 ceil(12.6) 보다 크면서도 가장 가까운 정수는 13입니다. 제대로 출력이 되었습니다.

 

주의하실 점은 가장 가까운 정수라고 해서 입력된 값보다 작은 정수가 출력되지는 않습니다. 크면서도 가장 가까운 정수가 출력되는 것입니다.

 

5. floor 함수 사용 하기

floor 함수는 ceil 함수와 반대 개념입니다.

 

입력된 값보다 작으면서 가장 가까운 정수가 출력되는 함수입니다.

 

아래 예문으로 확인하겠습니다.

select floor(12.6),floor(11.5),floor(16.3)
from dual;

 

 

6. power 함수 사용 하기

power 함수는 첫 번째 입력된 값을 두번째 입력값 만큼 제곱 하여 출력을 하는 함수 입니다. 아래 예문을 보겠습니다.

select power(1,2),power(2,3),power(3,5)
from dual;

 

 

첫번째 power(1,2)는 1의 2승을, 두 번째 power(2,3)은 2의 3승을 power(3,5)는 3의 5승을 아래 그림과 같이 리턴하는 함수입니다.

 


이번에 소개해드린 6개의 숫자 함수 이외에도 아주 많은 숫자 함수들이 존재합니다.

 

문자 함수가 되었든, 숫자 함수가 되었든 모든 걸 외우거나 알고 있을 필요는 없습니다. 자주 쓰는 것이라면 자연스럽게 외워질 것이고 그저 "아 그런 게 있다"라고만 알고 계시면 됩니다. 필요할 때는 찾아서 쓰면 됩니다.

 

숫자 함수에 관해서 더 알아보고 싶으신 분들은 아래 공식 문서를 참조하시길 바랍니다.

https://dev.mysql.com/doc/refman/8.0/en/numeric-functions.html

 

MySQL :: MySQL 8.0 Reference Manual :: 12.5 Numeric Functions and Operators

MySQL 8.0 Reference Manual  /  Functions and Operators  /  Numeric Functions and Operators 12.5 Numeric Functions and Operators Table 12.7 Numeric Functions and Operators Name Description %, MOD Modulo operator * Multiplication operator + Addition operator

dev.mysql.com

오늘 독학 강의는 여기까지입니다.

 

감사합니다.

 

다음 시간에 또 뵙겠습니다.

 

 

#다음편 독학 강의 보러 가기#

2020/03/31 - [Database/sql 강의] - sql 공부 강의 # 단일행 함수 잘 사용 하기(날짜 함수) 6편 -sTricky

 

sql 공부 강의 # 단일행 함수 잘 사용 하기(날짜 함수) 6편 -sTricky

sql 공부 강의 # 단일행 함수 잘 사용 하기(날짜 함수) 6편 -sTricky 컨텐츠 index 1. 지금 현재 날짜, 시간 출력 하기 2. 날짜, 시간에 따른 특정 정보 출력 하기 3. 날짜, 시간을 연산하여 출력 하기 4. 시간과..

stricky.tistory.com

 

 

by.sTricky