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) |