******************** 데이터 모델 ******************** =============== 데이터 타입 =============== +-----------+----------------+----------------------------+---------------+---------------------------------------------------+--------------------------------------------------------------------------+ | 지원유무 | 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절에 실수값을 사용하는 경우라면 근사치를 대입해서는 안됩니다. 특히, 비교 연산자인 > 와 < 연산자의 경우에는 잘 동작하지만, -와 <> 연산자에서는 원하는 결과를 얻지 못하는 경우가 있습니다.