데이터 모델¶
데이터 타입¶
지원유무 | SQL 타입 이름 | 다른표현 | 크기 (바이트) | 의미 | 표현 가능 범위 |
---|---|---|---|---|---|
O | boolean | bool | 1 | true/false | |
bit | 1 | 1/0 | |||
varbit | bit varying | ||||
O | smallint | tinyint, int2 | 2 | small-range integer value | -2^15 (-32,768) to 2^15 (32,767) |
O | integer | int, int4 | 4 | integer value | -2^31 (-2,147,483,648) to 2^31 - 1 (2,147,483,647) |
O | bigint | bit varying | 8 | larger range integer value | -2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807) |
O | real | int8 | 4 | variable-precision, inexact, real number value | -3.4028235E+38 to 3.4028235E+38 (6 decimal digits precision) |
O | float[(n)] | float4 | 4 or 8 | variable-precision, inexact, real number value | |
O | double | float8, double precision | 8 | variable-precision, inexact, real number value | 1 .7E–308 to 1.7E+308 (15 decimal digits precision) |
number | decimal | ||||
char[(n)] | character | ||||
varchar[(n)] | character varying | ||||
O | text | text | variable-length unicode text | ||
binary | binary | ||||
varbinary[(n)] | binary varying | ||||
O | blob | bytea | variable-length binary string | ||
O | date | ||||
O | time | ||||
timetz | time with time zone | ||||
O | timestamp | ||||
timestamptz | |||||
O | inet4 | 4 | IPv4 address |
실수 사용하기 (real 과 double)¶
real 과 double 데이터 타입들은 각각 자바의 기본형중 float와 double 타입으로 생각할 수 있습니다. 자바 기본형에서 float와 double 타입은 모두 IEEE 754 규격을 따릅니다. 그래서, 이들 타입은 SQL 표준의 데이터 타입과 정확하게 일치합니다.
- float[( n )] 표현은 n의 크기에 따라 float 혹은 double 타입으로 표현됩니다. n은 1~53 이내의 정수이며, 기본값은 53입니다.
- 만약 n의 범위가 1과 24 사이라면, 6자리 소수점의 정밀도를 가진 float 타입으로 표현됩니다.
- 만약 n의 범위가 25와 53 사이라면, 15자리 소수점의 정밀도를 가진 double 타입으로 표현됩니다.
- 정확한 비교를 목적으로 WHERE절에 실수값을 사용하는 경우라면 근사치를 대입해서는 안됩니다. 특히, 비교 연산자인 > 와 < 연산자의 경우에는 잘 동작하지만, -와 <> 연산자에서는 원하는 결과를 얻지 못하는 경우가 있습니다.