MySQL Data Types

Type Size Description
CHAR[Length] Length Bytes A fixed-length field from 0 to 255 characters long
VARCHAR[Length] String Length + 1 or 2 bytes A variable-length field from 0 to 65,535 characters long
TINYTEXT String length + 1 byte A string with a maximum length of 255 characters
TEXT String length + 2 bytes A string with a maximum length of 65,535 characters
MEDIUMTEXT String length + 3 bytes A string with a maximum length of 16,777,215 characters
LONGTEXT String length + 4 bytes A string with a maximum length of 4,294,967,295 characters
TINYINT[Length] 1 byte Range of -128 to 128 or 0 to 255 unsigned
SMALLINT[Length] 2 bytes Range of -32,768 to 32,767 or 0 to 65,636
MEDIUMINT[Length] 3 bytes Range of -8,388,608 to 8,288,607 or 0 to 16,777,215
INT[Length] 4 bytes Range of -2,147,483,648 to 2,147,483,647 or 0 to 4,294,967,295 unsigned
BIGINT[Length] 8 bytes Range of -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 or 0 to 18,446,744,073,709,551,615 unsigned
FLOAT[Length, Decimals] 4 bytes A small number with a floating decimal point
DOUBLE[Length, Decimals] 8 bytes A large number with a floating decimal point number
DECIMAL[Length, Decimals] Length + 1 or 2 bytes A DOUBLE stored as a string allowing for a fixed decimal point
DATE 3 bytes In the format YYYY-MM-DD
DATETIME 8 bytes In the format YYYY-MM-DD HH:MM:SS
TIMESTAMP 4 bytes In the format YYYYMMDDHHMMSS; acceptable range starts in 1970 and ends in the year 2038
TIME 3 bytes In the format of HH:MM:SS
ENUM 3 bytes Short for enumeration, which means that each column can have one of several possible values.
SET 1,2,3,4 or 8 bytes Like ENUM except that each column can have more of one several possible values.