MySQL

Integer Types

Type Bytes Min Value Signed Min Value Unsigned Max Value Signed Max Value Unsigned
TINYINT 1 -128 0 127 255
SMALLINT 2 -32768 0 32767 65535
MEDIUMINT 3 -8388608 0 8388607 16777215
INT 4 -2147483648 0 2147483647 4294967295
BIGINT 8 -2^63 0 2^63-1 2^64-1

Float Types

Type Bytes Min Value Max Value
DECIMAL(5,2) 4 -999.99 999.99
DECIMAL(7) 4 -9999999 9999999
DECIMAL(5,0) 4 -99999 99999
FLOAT(7,4) 4 -999.9999 999.9999
DOUBLE(53) 8 -1.7976931348623157E+308 1.7976931348623157E+308

Bit-Value Type - BIT

Type Bytes Min Value Max Value
BIT(1) (1 + 7)/8 = 1 0 1
BIT(5) (5 + 7)/8 = 2 00000 11111
BIT(64) (64 + 7)/8 = 9 0(64) 1(64)

Data and TIme Types

Type Bytes Format Min Value Max Value
DATE 3 YYYY-MM-DD 1000-01-01 9999-12-31
DATETIME 8 YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 9999-12-31 23:59:59
DATETIME(2) 8 YYYY-MM-DD HH:MM:SS[.fraction] 1000-01-01 00:00:00.00 9999-12-31 23:59:59.99
TIMESTAMP 4 YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:01 2038-01-19 03:14:07
TIMESTAMP(4) 4 YYYY-MM-DD HH:MM:SS[.fraction] 1970-01-01 00:00:01.00000 2038-01-19 03:14:07.9999
TIME 3 HH:MM:SS 00:00:01 23:59:59
TIME(6) 3 HH:MM:SS[.fraction] 00:00:01.000000 23:59:59.999999
YEAR(4) 1 YYYY 1901 2155
YEAR(2) 1 YY 1 to 69 and 70 to 99 2001 to 2069 and 1970 to 1999

String Types

Type Is Fixed Length Max Length
CHAR(n) yes 255
VARCHAR(n) no 65,535
BINARY(n) yes 255
VARBINARY(n) no 65,535
TINYBLOB, TINYTEXT no 255
BLOB, TEXT no 65,535
MEDIUMBLOB, MEDIUMTEXT no 2^24
LONGBLOB, LONGTEXT no 2^32
ENUM(‘value1’,’value2’,…) no 1 or 2 bytes, depending on the number of values (65,535 maximum)
SET(‘value1’,’value2’,…) no 1, 2, 3, 4, or 8 bytes, depending on the number of set members (64 maximum)
Value CHAR(4) Storage VARCHAR(4) Storage
‘’ ‘ ‘ 4 bytes ‘’ 1 byte
‘ab’ ‘ab ‘ 4 bytes ‘ab’ 3 bytes
‘abcd’ ‘abcd’ 4 bytes ‘abcd’ 5 bytes
‘abcdefgh’ ‘abcd’ 4 bytes ‘abcd’ 5 bytes

Boolean Types

Type Bytes Values
BOOLEAN (aliases of TINYINT(1)) 1 0 (false) or 1 (true)