DB

[PostgreSQL] 기본 데이터 타입 - Numeric types

지과쌤 2020. 8. 17.
반응형

  • Character types / why should we use char instead of varchar?
  • Numeric types
  • Boolean types
  • Temporal types
  • UUID for storing Universally Unique Identifiers
  • Array for storing array strings, numbers, etc...
  • JSON stores JSON data
  • hstore stores key-value pair
  • User defined data

Integer

Name Storage Size Min Max
smallint 2byte -32,768 +32,767
integer ( = int ) 4byte -2,147,483,648 +2,147,483,647
bigint 8byte -9,223,372,036,854,775,808 +9,223,372,036,854,775,807

 

smallint - 가장 작은 범위의 타입

 

integer ( = int ) - 저장소 크기, 범위 및 성능을 나타냄에 있어 가장 일반적으로 사용되는 타입 / serial 이 해당 범위를 갖고 있다.

 

bigint - integer보다 넓은 범위를 사용해야 할 때. / 많은 저장소를 사용하고 데이터베이스 성능 저하의 이유가 될 수 있으므로 충분한 고려 후 사용해야한다.

 

Floating - point value

numeric(precision, scale) - 소숫점 이하의 scale 자릿수가 있는 precision 자리의 실수.

만약 소숫점 scale자리에 특정 값이 없으면 0들로 채워진다.

즉 일단 n 자리까지 선언이 되면 기본값으로 0이 들어가있다는것.

 

범위 : 가변 용량이며 소수점 앞 131,072자리까지, 소수점 이하 16,383자릿수

 

numeric(5, 2) 일때 500.215 를 넣는다면 소수점 3자리부분을 반올림한다. →500.22

정수부분이 범위를 초과하면 오류를 뿜는다.

 

numeric(5,2) 일때 123456.21 넣으면 오류.

 

mumeric(precision) 도 가능하다. scale 을 0으로 한다는것.

 

mumeric도 가능. 한도 내에서 다 가능하다.

 

숫자가 아닐때 'NaN' 값을 가질 수 있으며 다른 숫자들보다 크다고 취급.

 

decimal과 완전히 똑같다.

 

numeric(precision, scale) // numeric(7, 3) -> 1234.567, 1234.000

numeric(precision) // sclae = 0

numeric //can hold a value up to 131,072 digits before the decimal point 16,383 digits after the decimal point.

 

소수점부분 필요한거 아니면 그냥 integers, floats, double 쓰는게 더 낫다.(성능측면)

 

ex) 1234.567 → precision : 7, scale : 3

 

float - 부동 소수점의 데이터를 저장한다. 8byte

 

 

반응형

댓글

💲 추천 글