A Data Type specifies a particular type of data, like integer, floating points, Boolean etc. It also identifies the possible values for that type, the operations that can be performed on that type and the way the values of that type are stored.
MySQL supports a lot number of SQL standard data types in various categories. It uses many different data types broken into mainly three categories: numeric, date and time, and string types.
Numeric Data Type
Data Type Syntax  Description 

INT  A normalsized integer that can be signed or unsigned. If signed, the allowable range is from 2147483648 to 2147483647. If unsigned, the allowable range is from 0 to 4294967295. You can specify a width of up to 11 digits. 
TINYINT  A very small integer that can be signed or unsigned. If signed, the allowable range is from 128 to 127. If unsigned, the allowable range is from 0 to 255. You can specify a width of up to 4 digits. 
SMALLINT  A small integer that can be signed or unsigned. If signed, the allowable range is from 32768 to 32767. If unsigned, the allowable range is from 0 to 65535. You can specify a width of up to 5 digits. 
MEDIUMINT  A mediumsized integer that can be signed or unsigned. If signed, the allowable range is from 8388608 to 8388607. If unsigned, the allowable range is from 0 to 16777215. You can specify a width of up to 9 digits. 
BIGINT  A large integer that can be signed or unsigned. If signed, the allowable range is from 9223372036854775808 to 9223372036854775807. If unsigned, the allowable range is from 0 to 18446744073709551615. You can specify a width of up to 20 digits. 
FLOAT(m,d)  A floatingpoint number that cannot be unsigned. You can define the display length (m) and the number of decimals (d). This is not required and will default to 10,2, where 2 is the number of decimals and 10 is the total number of digits (including decimals). Decimal precision can go to 24 places for a float. 
DOUBLE(m,d)  A double precision floatingpoint number that cannot be unsigned. You can define the display length (m) and the number of decimals (d). This is not required and will default to 16,4, where 4 is the number of decimals. Decimal precision can go to 53 places for a double. Real is a synonym for double. 
DECIMAL(m,d)  An unpacked floatingpoint number that cannot be unsigned. In unpacked decimals, each decimal corresponds to one byte. Defining the display length (m) and the number of decimals (d) is required. Numeric is a synonym for decimal. 
Date and Time Data Type:
Data Type Syntax  Maximum Size  Explanation 

DATE  Values range from ‘10000101’ to ‘99991231’.  Displayed as ‘yyyymmdd’. 
DATETIME  Values range from ‘10000101 00:00:00’ to ‘99991231 23:59:59’.  Displayed as ‘yyyymmdd hh:mm:ss’. 
TIMESTAMP(m)  Values range from ‘19700101 00:00:01’ UTC to ‘20380119 03:14:07’ TC.  Displayed as ‘YYYYMMDD HH:MM:SS’. 
TIME  Values range from ‘838:59:59’ to ‘838:59:59’.  Displayed as ‘HH:MM:SS’. 
YEAR[(24)]  Year value as 2 digits or 4 digits.  Default is 4 digits. 
String Data Types:
Data Type Syntax  Maximum Size  Explanation 

CHAR(size)  Maximum size of 255 characters.  Where size is the number of characters to store. Fixedlength strings. Space padded on right to equal size characters. 
VARCHAR(size)  Maximum size of 255 characters.  Where size is the number of characters to store. Variablelength string. 
TINYTEXT(size)  Maximum size of 255 characters.  Where size is the number of characters to store. 
TEXT(size)  Maximum size of 65,535 characters.  Where size is the number of characters to store. 
MEDIUMTEXT(size)  Maximum size of 16,777,215 characters.  Where size is the number of characters to store. 
LONGTEXT(size)  Maximum size of 4GB or 4,294,967,295 characters.  Where size is the number of characters to store. 
BINARY(size)  Maximum size of 255 characters.  Where size is the number of binary characters to store. Fixedlength strings. Space padded on right to equal size characters.
(introduced in MySQL 4.1.2)

VARBINARY(size)  Maximum size of 255 characters. 
Where size is the number of characters to store. Variablelength string.
(introduced in MySQL 4.1.2)

Large Object Data Types (LOB) Data Types:
Data Type Syntax  Maximum Size 
TINYBLOB  Maximum size of 255 bytes. 
BLOB(size)  Maximum size of 65,535 bytes. 
MEDIUMBLOB  Maximum size of 16,777,215 bytes. 
LONGTEXT  Maximum size of 4gb or 4,294,967,295 characters. 