티스토리 뷰

MySQL (MariaDB) 데이터 타입( Data Type )

문자형 (String Type)

  • CHAR(n) : 고정길이 데이터 타입 (최대 255byte) - 지정된 길이보다 짧은 데이터 입력시 나머지 공간이 공백(Null)으로 채워짐

    • CHAR(0) 은 NULL을 의미하며 NULL 혹은 ' '(빈 문자열) 만을 가질 수 있다
  • VARCHAR(n) : 가변길이 데이터 타입(최대 65535byte) - 지정된 길이보다 짧은 데이터 입력시 나머지 공간 채우지 않는다
    • char & varchar : 같은 문자열을 char 와 varchar로 저장한 경우 두 값을 equal() 로 비교했을때 false 가 나올수 있다 (CHAR의 경우 공백을 NULL 로 채우기 때문에)

    • trim() 으로 필터링한후 비교하면 true가 나올수 있다
    • 따라서 고정길이 문자열이 아닌경우varchar를 쓰는것이 좋다고 생각 됨 (대부분 varchar를 사용)
  • NVARCHAR : 가변 유니코드 문자열, 모든 문자를 2byte로 저장
  • * varchar nvarchar : 가변 문자열과 가변 유니코드 문자열 다국어 지원을 하는 경우는 nvarchar 사용이 유리

  • TINYTEXT(n) : 문자열 데이터 타입(최대 255byte )

  • TEXT(n) : 문자열 데이터 타입(최대 65535byte)

  • MEDIUMTEXT(n) : 문자열 데이터 타입(최대 16777215byte)

  • LONGTEXT(n) : 문자열데이터 타입(최대 4294967295byte)

  • BINARY(n) & BYTE(n) : char 형태의 이진 데이터 타입(최대 255byte)

  • LONGBLOB(n) : 이진 데이터 타입(최대 4294967295byte)
  • MEDIUMBLOB(n) : 이진 데이터 타입(최대 16777215byte)
  • BLOB(n) : 이진 데이터 타입(최대 65535byte)
  • TINYBLOB(n) : 이진 데이터 타입 (최대 255byte)
  • VARBINARY(n) : varchar 형태의 이진 데이터 타입 (최대 65536byte)
  • ENUM : 문자 형태인 value를 숫자로 저장 value 중에 하나만 저장하며 value가 255 이하인 경우에는 1byte 사용, 65535 이하인 경우에는 2byte 사용
  • SET : 목록에서 선택되어야 하는 문자열을 0개 이상 가질 수 있는 객체, 최대64개의 중복되지 않는 문자열을 가질 수 있다

숫자형 (Numeric Type)

정수형 (Integer Type)

TypeStorage (Bytes)Minimum Value SignedMinimum Value UnsignedMaximum Value SignedMaximum Value Unsigned
TINYINT1-1280127255
SMALLINT2-3276803276765535
MEDIUMINT3-83886080838860716777215
INT4-2147483648021474836474294967295
BIGINT8-2630263-1264-1


고정길이 소수형(Fixed-Point Type)
  • DECIMAL (길이,소수) : 고정 소수형 데이터 타입 (길이+1byte) - 소수점을 사용형태

    • DECIMAL(N) 은 DECIMAL(N,0) 과 같다
    • 최대 자릿수는 65
ex) DECIMAL(5,2) 이면 5자리의 숫자중에 소수점밑에 2자리 = 고정 소수형의 XXX.XX 형태로 나타내며
이 경우 -999.99~999.99 범위를 가진다


부동 소수형(Floating-Point Type)
근사값을 나타내는 데이터 타입
표현은 고정길이 소수형과 동일
  • FLOAT (길이,소수) : 부동 소수형 데이터 타입 (4byte for single-precision value)

  • DOUBLE (길이,소수) : 부동 소수형 데이터 타입( 8byte for double precision value )


날짜형(Date and Time Type)

  • DATE : 날짜(y,m,d) 형태의 기간 표현 데이터 타입(3byte)

  • TIME : 시간(h,m,s) 형태의 기간 표현 데이터 타입(3byte)

  • DATETIME : 날짜와 시간 형태의(date+time) 기간 표현 데이터 타입(8byte)

  • TIMESTAMP : 날짜와 시간 형태의 기간 표현 데이터 타입(4byte) - 시스템 변경시 자동으로 그 날짜와 시간이 저장된다

  • YEAR: 년도 표현 데이터 타입(1byte)



출처 : MySQL 매뉴얼 데이터 타입 (https://dev.mysql.com/ - chapter11  Data Types)

댓글