MySQL에서 지원하는 데이터 타입

KIMA·2022년 7월 14일
0

Database

목록 보기
6/9
post-thumbnail

Numeric Type

정수형

  • UNSIGNED 가능

    Type크기 (Byte)
    INTEGER(INT)4
    TINYINT1
    SMALLINT2
    MEDIUMINT3
    BIGINT8

실수형

  • 고정 소수형

    Type
    DECIMAL(소수점 포함 총 자릿수 (max : 65, default : 10), 소수 자릿수)
    NUMERIC(소수점 포함 총 자릿수 (max : 65, default : 10), 소수 자릿수)
    • 예) 정확도가 요구되는 데이터 (화폐 데이터)
    • DECIMAL은 NUMERIC으로 구현됨
      • 따라서, 어떤 타입을 사용하던 동일하게 동작
  • 부동 소수형

    Type크기 (Byte)
    FLOAT(n)4
    DOUBLE(n)8
    • n = 정밀도에 필요한 최소 bit 수
      • 0 ≤ n ≤ 24 : FLOAT
      • 25 ≤ n ≤ 53 : DOUBLE

String Type

Type정의
CHAR(M)문자 집합 저장 (고정 길이, 단위: byte)
VARCHAR(M)문자 집합 저장 (가변 길이, 단위 : byte)
NCHAR(M)문자 집합 저장 (고정 길이, 단위: 문자수)
NVARCHAR(M)문자 집합 저장 (가변 길이, 단위 : 문자수)
BINARY(M)binary 데이터 저장 (고정 길이)
VARBINARY(M)binary 데이터 저장 (가변 길이)
BLOBBinary Large Object, 대소문자 구분 X
TEXTVARCHAR + 기본값 가능, BLOB + 대소문자 구분 O
ENUM(value1, value2, …)미리 지정한 여러 값 중 하나를 저장
SET(value1, value2, …)ENUM + 여러 값 저장
영문은 1byte, 한글은 2byte이다.
한글(유니코드)은 2byte를 차지하기 때문에,
3글자의 한글을 char/varchar 데이터 형식으로 정의할 경우 2배의 자릿수인 6을 지정해야한다.
반면, nchar/nvarchar 데이터 형식으로 정의할 경우엔 한글/영문 상관없이 3을 지정해주면 된다.

따라서, 한글(유니코드)을 저장하지 않을 것이 확실하다면, nchar/nvarchar보다 char/varchar를 데이터 형식으로 사용하는 것이 더 적은 공간을 차지한다.

Date And Time Type

Type정의
DATEYYYY-MM-DD
TIMEhh:mm:ss
DATETIMEYYYY-MM-DD hh:mm:ss
TIMESTAMPInteger
YEARYYYY
  • TIMESTAMP
    • 기본 값 : modified time
    • DATETIME과 다르게 TIME_ZONE을 가지고 있어, 시스템이 변경될 경우 자동으로 변경된 시스템에 맞춰 날짜와 시간이 저장됨
    • ms 까지 표현 가능함

JSON Type

: 다양한 JSON 조작 함수 제공

Spatial Type

: 위치 (위도와 경도)

profile
안녕하세요.

0개의 댓글