본문 바로가기
[SQL]

[SQL] SQL 문장의 구성요소 (숫자형)

by 북방바다코끼리표범 2023. 9. 10.

복습

https://shins99.tistory.com/73

 

[SQL] SQL 문장의 구성요소 (문자형)

복습 https://shins99.tistory.com/72 [SQL] 관계형 데이터베이스(relational database) 복습 https://shins99.tistory.com/71 [SQL] 데이터베이스(DataBase) 복습 https://shins99.tistory.com/70 [SQL] SQL(Structured Query Language) SQL(Structured

shins99.tistory.com


숫자형은 정수나 실수의 숫자를 저장하는 데이터 타입이다. 숫자형에는 NUMBER 타입, INTEGER 타입, FLOAT 타입이 있다.

Tibero에서는 ANSI에서 제정한 SQL 표준의 숫자 타입의 선언을 지원한다. 즉, INTEGER 타입 또는 FLOAT 타입으로 컬럼을 선언하더라도 내부적으로 적절한 정밀도와 스케일을 설정하여 NUMBER 타입으로 변환해 준다.

 

NUMBER

NUMBER 타입은 정수 또는 실수를 저장하는 데이터 타입이다.

NUMBER 타입이 표현할 수 있는 수의 범위는 음양으로 절댓값이 1.0×10-130보다 크거나 같고, 1.0×10126보다 작은 38자리의 수를 표현할 수 있으며 0과 ±무한대를 포함한다.

 

NUMBER 타입은 선언할 때 다음과 같이 자릿수를 의미하는 정밀도와 스케일을 함께 정의할 수 있다.

NUMBER[(precision[,scale])]
구분설명
precision 정밀도는 데이터의 전체 자릿수이다.
  • 정밀도를 초과하는 자릿수의 데이터는 저장할 수 없다.
  • 정밀도는 1 ~ 38까지 정의할 수 있다.
  • 정밀도는 애스터리스크(*)로도 선언할 수 있다.
최대 38자리 한도 내에서 임의의 자릿수를 갖는 모든 데이터 값을 받아들이겠다는 의미이며, 대체로 스케일 값을 함께 선언한다.
scale 스케일은 소수점 이하 자릿수이다.
  • 마이너스의 스케일은 소수점 위의 자릿수이다.
  • 스케일을 초과하는 데이터는 반올림을 수행한다.
  • 스케일은 -125 ~ 130까지 정의할 수 있다.
 

다음은 입력된 데이터가 NUMBER 타입의 정밀도와 스케일에 정의된 값에 따라 실제 데이터베이스에 어떤 형태로 저장되는지를 보여준다.

입력된 데이터NUMBER 타입 선언실제 저장된 데이터
12,345.678 NUMBER 12,345.678
12,345.678 NUMBER(*,3) 12,345.678
12,345.678 NUMBER(8,3) 12,345.678
12,345.678 NUMBER(8,2) 12,345.68
12,345.678 NUMBER(8) 12,346
12,345.678 NUMBER(8,-2) 12,300
12,345.678 NUMBER(3) 입력된 데이터의 자릿수가 정밀도를 초과했으므로 저장할 수 없다.