본문 바로가기

Infomation

MySQL 데이터 타입

from http://ra2kstar.tistory.com/82


MySQL 데이터 타입



MySQL 에서 사용하는 데이터 타입에 대해서 알아본다. 


  CHAR 데이터 타입

CHAR와 VARCHAR(VARiable length CHARacter string)은 모두 텍스트 문자열을 허용하고, 필드의 크기를 제한한다. 두 타입의 차이점은 CHAR 필드의 모든 문자열은 크기가 정해진다는 것. 즉 더 작은 문자열을 입력하면 공백으로 채워진다. 반면 VARCHAR의 경우, 텍스트를 채우지 않으며, 입력한 텍스트 크기에 맞게 가변적으로 크기를 가진다. 그러나, VARCHAR는 각 값의 크기를 추적할 수 있는 약간의 오버헤드가 필요하기 때문에 모든 데이터의 크기가 비슷하다면, CHAR가 더 효율적이다.


TYPE  

사용되는 바이트 

예제 

CHAR(n) 

정확히 n (<=255) 

CHAR(5) 'Hello'는 5바이트 사용

CHAR(50) 'Hello'는 50바이트 사용 

 VARCHAR(n)

최대 n 까지(<=65535) 

VARCHAR(100)'Hello'는 5바이트 사용

VARCHAR(5) 'Hello'는 5바이트 사용



  BINARY 데이터 타입 

BINARY 데이터 타입은 관련된 문자 세트가 없는 문자의 전체 바이트를 저장하는데 사용된다. 예를 들면 GIF 이미지를 저장하는데 사용할 수 있다. 


TYPE  

사용되는 바이트 

예제 

BINARY(n) 혹은 BYTE(n) 

정확히 n (<=255) 

CHAR이지만 바이너리 데이터를 가짐 

 VARBINARY(n)

최대 n 까지(<=65535) 

VARCHAR이지만 바이너리 데이터를 가짐



  TEXT와 VARCHAR 데이터 타입

TEXT와 VARCHAR에는 작은 차이점이 있다. 


TEXT 필드는 기본 값을 가질 수 없다. 

MySQL은 TEXT 열의 처음 n 개의 문자만 인덱싱 할 수 있다. 


이것은, 만약 전체 내용을 검색할 때는 VARCHAR이 더 알맞고, 빠르다는 것이다.


 TYPE

사용되는 바이트 

속성 

 TINYTEXT(n)

최대 n (<=255)

문자열로 취급

 TEXT(n)

최대 n (<=65535)

문자열로 취급

 MEDIUMTEXT(n)

최대 n (<=16777215)

문자열로 취급

 LONGTEXT(n)

최대 n (<=4294967295)

문자열로 취급



  BLOB 데이터 타입

BLOB(Binary Large OBject)는 65535 바이트를 넘는 바이너리 데이터에 유용하며, 기본 값을 가질 수 없다. 


 TYPE

사용되는 바이트 

속성 

TINYBLOB(n)

최대 n (<=255)

바이너리 데이터로 취급

 BLOB(n)

최대 n (<=65535)

바이너리 데이터로 취급

 MEDIUMBLOB(n)

최대 n (<=16777215)

바이너리 데이터로 취급

 LONGBLOB(n)

최대 n (<=4294967295)

바이너리 데이터로 취급



  숫자형 데이터 타입


 TYPE

사용되는 바이트 

최소 값

(signed/unsigned) 

대 값

(signed/unsigned) 

TINYINT

-128

127
255 

SMALLINT 

-32768

32767
65535 

MEDIUMINT

-8388608

8388607
16777215 

INT or INTEGER

-2147483648

2147483647
4294967295 

BIGINT

-9223372036854775808

9223372036854775807

18446744073709551615

FLOAT

-3.40E+45
(no unsigned) 

3.40E+45

(no unsigned) 

DUBLE or REAL

-1.7976E+320
(no unsigned)   

1.7976E+320
(no unsigned)