MySQL 데이터타입
MySQL의 데이터 타입
[CHAR 데이터 타입]
CHAR와 VARCHAR는 모두 텍스트 문자열을 허용하고 필드의 크기를 제한한다. 두 타입의 차이점은 CHAR는 문자열의 크기가 한번 정해지면 정해진 크기보다 적은 크기의 문자열이 입력하더라도 해당 문자열의 크기를 유지한다는 것(공백으로 채워짐)이고, VARCHAR는 정해진 크기보다 적은 크기의 문자열을 입력하면 그에 맞게 가변적으로 크기를 갖게 된다. 하지만, VARCHAR는 각 값의 크기를 추적할 수 있는 약간의 오버헤드가 필요하기 때문에 모든 데이터의 크기가 비슷하다면, CHAR가 효율적이다.
TYPE |
BYTE |
Exam |
CHAR(n) |
n Byte(최대 255 Byte) |
CHAR(5) 'Hello' : 5 Byte CHAR(10) 'Hello' : 10 Byte |
VARCHAR(n) |
최대 n Byte(최대 65535 Byte) |
VARCHAR(5) 'Hello' : 5 Byte VARCHAR(10) 'Hello' : 5 Byte |
[BINARY 데이터 타입]
BINARY 데이터 타입은
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 | 1 | -128 | 127 |
SMALLINT | 2 | -32768 | 32767 |
MEDIUMINT | 3 | -8388608 | 8388607 |
INT or INTEGER | 4 | -2147483648 | 2147483647 |
BIGINT | 8 | -9223372036854775808 | 9223372036854775807 18446744073709551615 |
FLOAT | 4 | -3.40E+45 | 3.40E+45 (no unsigned) |
DUBLE or REAL | 8 | -1.7976E+320 | 1.7976E+320 |