When creating a table, MySQL requires that you explicitly state what sort of information each column will contain. There are three primary types:
Type | Size | Description |
---|---|---|
CHAR[Length] | Length bytes | A fixed-length field from 0 to 255 characters |
VARCHAR[Length] | String length + 1 or 2 bytes | A variable-length field from 0 to 65,535 characters long |
TINYTEXT | String length + 1 bytes | 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 127 or 0 to 255 unsigned |
SMALLINT[Length] | 2 bytes | Range of -32,768 to 32,767 or 0 to 65,535 unsigned |
MEDIUMINT[Length] | 3 bytes | Range of -8,388,608 to 8,388,607 or 0 to 16,777,215 unsigned |
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,808 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 |
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 of YYYY-MM-DD |
DATETIME | 8 bytes | In the format of YYYY-MM-DD HH:MM:SS |
TIMESTAMP | 4 bytes | In the format of YYYYMMDDHHMMSS; acceptable range end sin the year 2037 |
TIME | 3 bytes | In the format of HH:MM:SS |
ENUM | 1 or 2 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 than on eof several possible values |