- 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
'DB' 카테고리의 다른 글
[PostgreSQL] 기본 데이터 타입 정리 - Array (0) | 2020.09.01 |
---|---|
[PostgreSQL] 기본 데이터 타입 정리 - UUID , Serial (0) | 2020.09.01 |
[PostgreSQL] 기본 데이터 타입 정리 - Temporal types (0) | 2020.09.01 |
[PostgreSQL]기본 데이터 타입 정리 - Boolean types (0) | 2020.09.01 |
[PostgreSQL] 기본 데이터 타입 - Character types (0) | 2020.08.17 |
댓글