2012. 2. 10. 15:00

MySQL 데이타 타입 (5.1기준)

BIT[(M)] (M+7)/8byte
- 범위 : 1 ~ 64, M은 값당 비트수, 기본 생략

TINYINT[(M)] [UNSIGNED] [ZEROFILL]
1byte
- 범위 : -128 에서 127 (UNSIGNED 일 경우 0 에 255) 

BOOL, BOOLEAN 
- 범위 : 0 / 1, TINYINT(1)과 동일 

SMALLINT[(M)] [UNSIGNED] [ZEROFILL] 2byte
- 범위 : -32768 에서 32767 (UNSIGNED 일 경우 0 에 65535) 

MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] 3byte
- 범위 : -8388608 에서 8388607 (UNSIGNED 일 경우 0 에 16777215) 

INT[(M)] [UNSIGNED] [ZEROFILL] 4byte
- 범위 : -2147483648 에서 2147483647 (UNSIGNED 일 경우 0 에 4294967295) 
- 주의 : 모든 연산은 "signed BIGINT" 로 이루어진다. 따라서 더하기 곱하기 등으로 "signed BIGINT" 의 범위를 벗어난다면 값이 틀려질 것이다. 

INTEGER[(M)] [UNSIGNED] [ZEROFILL] 
- 범위 : INT 와 동일 

BIGINT[(M)] [UNSIGNED] [ZEROFILL] 8byte
- 범위 : -9223372036854775808 에서 9223372036854775807 (UNSIGNED 일 경우 0 에 18446744073709551615) 

SERIAL
- BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE 와 동일 

DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
- 범위 : M(65글자).D(30글자) , M 생략시 기본 10, D생략시 기본 0

FLOAT[(M,D)] [ZEROFILL] 4byte
- 범위 : -3.402823466E+38 에서 -1.175494351E-38, 0 그리고 1.175494351E-38 에서 3.402823466E+38 
- 주의 : unsigned 를 설정할수 없다. 

DOUBLE[(M,D)] [ZEROFILL] 8byte
- 범위 : -1.7976931348623157E+308 에서 -2.2250738585072014E-308, 0 그리고 2.2250738585072014E-308 에서 1.7976931348623157E+308 
- 주의 : unsigned 를 설정할수 없다. 

REAL[(M,D)] [ZEROFILL] 
- 범위 : DOUBLE 과 동일 

DATE 3byte
- 범위 : '1000-01-01' 에서 '9999-12-31' 

DATETIME 8byte
- 범위 : '1000-01-01 00:00:00' 에서 '9999-12-31 23:59:59' 

TIMESTAMP[(M)] 4byte
- 범위 : '1970-01-01 00:00:00' 에서 '2038-01-19 03:14:07'

TIME 3byte
- 범위 : '-838:59:59'  에서 '838:59:59'

YEAR 1byte
- 1901 부터 2155까지, 단 0000 설정가능 

CHAR(M) [BINARY] 0 ~ 255 * (엔코딩 별 문자1개의 byte수)
- 범위 : 1 에서 255 글자 
- 주의 : 고정길이로 길이가 작은 값이 입력되면 오른쪽에 스페이스로 채워져서 입력된다. BINARY 키워드가 주어지지 않을 경우 대소문자 구분없이 검색한다. 

VARCHAR(M) [BINARY] 0 ~ 255 인경우 + 1byte, 255 이상인 경우 0 ~ 65534 + 2byte
- 범위 : 1 ~ 65534 글자(단 UTF-8인 경우 21844까지), 5.0 이하 버젼 1 ~ 255
- 주의 : BINARY 키워드가 주어지지 않을 경우 대소문자 구분없이 검색한다. 

BINARY(M) 0 ~ 255 byte
- CHAR 과 동일

VARBINARY(M) 
- VARCHAR 과 동일 

TINYBLOB  길이 + 1byte 
- 범위 : 최대 255 

TINYTEXT 길이 + 1byte
- 범위 : 최대 255 글자 

BLOB 길이 + 2byte
- 범위 : 최대 65535 

TEXT 길이 + 2byte
- 범위 : 최대 65535 글자 

MEDIUMBLOB 길이 + 3byte
- 범위 : 최대 16777215

MEDIUMTEXT 길이 + 3byte
- 범위 : 최대 16777215 글자 

LONGBLOB 길이 + 4byte
- 범위 : 최대 4294967295 글자 

LONGTEXT 길이 + 4byte
- 범위 : 최대 4294967295 글자 

ENUM('value1','value2',...) 1 또는 2byte, 설정 갯수에 따라.
- 범위 : 'value1', 'value2', ..., or NULL 만이 입력가능하다. 최대 65535 개의 다른 값이 들어갈수 있다. 

SET('value1','value2',...) 1, 2, 3, 4, 8 byte, 설정 갯수에 따라.
- 범위 : 'value1', 'value2', ..., or NULL 만이 입력가능하다. 최대 64 개의 다른 값이 들어갈수 있다.