MySQL 데이터 타입 정리

데이터에 대한 모든 것·2022년 4월 15일
0

Data Type

  1. Numeric Data Types
  2. Date and Time Data Types
  3. String Data Types
  4. Spatial Data Types
  5. The JSON Data Type

데이터 타입 이름 뒤에 괄호( )가 있으면 parameter를 필수로 입력해야 하는(대부분의 경우 크기 지정) 데이터 타입이고, 괄호가 없으면 크기를 지정하지 않아도 default value를 가지고 있는 데이터 타입이다.


1. Neumeric Data Types

1-1. Integer Types

TINYINT( )
SMALLINT( )
MEDIUMINT( )
INT
BIGINT( )

TypeStorage(Bytes)Signed RangeUnsigned Range
TINYINT1-128 ~ 1270 ~ 255
SMALLINT2-32768 ~ 327670 ~ 65535
MEDIUMINT3-8388608 ~ 83886070 ~ 16777215
INT4-2147483648 ~ 21474836470 ~ 4294967295
BIGINT8-263 ~ 263-10 ~ 264-1

1-2. Fixed-Point Types

DECIMAL

  • DECIMAL(A,B)가 기본형태이며, A는 전체 숫자의 길이, B는 전체 숫자 중 소수의 개수를 의미한다.
  • A의 default value는 10이며, B가 0이면 소수 부분을 가질 수 없다.
  • 최대 길이는 65자리 수.
    ex) DECIMAL(7) = -9999999 ~ 9999999
    ex) DECIMAL(7, 1) = -999999.9 ~ 999999.9
    ex) DECIMAL(7, 3) = -9999.999 ~ 9999.999
    ex) DECIMAL = -9999999999 ~ 9999999999
TypeStorage(Bytes)Range
DECIMALparameter A에 따라 유동적최대 65 자리(digits)

1-3. Floating-Point Types

FLOAT
DOUBLE
REAL

고정소수점과의 가장 큰 차이는, DECIMAL은 정확한 수치를 저장하지만, FLOAT과 DOUBLE은 근사치의 숫자를 저장할 뿐이다.

TypeStorage
(Bytes)
Range
FLOAT4-3.402823466 x 1010 ~ 3.402823466 x 1038
DOUBLE8-1.7976931348623157 x 10308 ~ 1.7976931348623157 x 10308
REAL""

1-4. Bit-Value Type

BIT( )

  • BIT(M) = M-bit value를 저장
  • M은 1 ~ 64 까지 가능
  • BIT(8)로 지정하고, 입력된 bit 수가 8보다 작다면, 나머지 자리는 0으로 패딩됨
    ex) BIT(8) - 1001이 값으로 들어오면, 00001001로 패딩됨

1-5. Nuemeric Type에서 조심해야할 점들(AUTO INCREMENTS, ZEROFILL 등)



2. Date and Time Data Types

2-1. The DATE, DATETIME, and TIMESTAMP Types

DATE
DATETIME( )
TIMESTAMP( )

TypeRangeFormat
DATE1000-01-01 ~ 9999-12-31YYYY-MM-DD
DATETIME1000-01-01 00:00:00 ~ 9999-12-31 23:59:59YYYY-MM-DD hh:mm:ss
TIMESTAMP1970-01-01 00:00:01 ~ 2038-01-19 03:14:07(UTC)YYYY-MM-DD hh:mm:ss

2-2. The TIME Type

TIME
TIME 데이터 타입은
1. 현재 시간을 나타내기 위해서나(to represent a time of day)
2. 경과 시간을 나타내기 위해서나(elapsed time)
3. 두 사건 간의 시간차를 나타내기 위해서(time interval between two events)

TypeRangeFormat
TIME-838:59:59.000000 ~ 838:59:59.00000hhh:mm:ss.000000

2-3. The YEAR Type

YEAR
YEAR 데이터 타입은 연도만을 나타내기 위해서 사용

TypeBytesRange
YEAR(4)11901 ~ 2155
YEAR(2)10 ~ 99(1970~1999, 2000~2069)

2-4. DATE, TIME Type에서 조심해야할 점들(AUTO INCREMENTS, ZEROFILL 등)


여기서 부터는 추후에 추가

3. String Data Types

3-1. The CHAR and VARCHAR Types

3-2. The BINARY and VARBINARY Types

3-3. The BLOB and TEXT Types

3-4. The ENUM Type

3-5. The SET Type


4. Spatial Data Types


5. The JSON Data Type

이 글은 https://dev.mysql.com 의 공식 document를 참고하여 작성하였습니다.

profile
좋은 서비스는 좋은 데이터로부터 나온다 :)

0개의 댓글