Um banco de dados nada mais é do que uma hierarquia de estruturas de dados complexas. Em MySQL, como em muitos outros bancos de dados, o conceito da estrutura que mantém os blocos (ou registros) de informações é chamado de tabela.
Estes registros, por sua vez, são constituídos de objetos menores que podem ser manipulados pelos usuários, conhecidos por tipos de dados (datatypes). Juntos, um ou mais datatypes, formam um registro (record). Uma hierarquia de banco de dados pode ser considerada como:
Banco de dados > Tabela > Registro > Tipo de dados
.
Os tipos de dados possuem diversas formas e tamanhos, permitindo ao programador criar tabelas específicas de
acordo com suas necessidades. MySQL provê um conjunto bem grande de tipos de dados, entre eles:



Nível: Básico
Informações retiradas de uma apostila extraída da internet(O autor não e destacado )

Código:

!" CHAR(M): strings de tamanho fixo entre 1 e 255 caracteres;

!" VARCHAR(M): strings de tamanho flexível entre 1 e 255 caracteres.
VARCHAR ocupa sempre o menor espaço possível, no entanto é 50%
mais lento que o tipo CHAR;
5

!" INT(M) [Unsigned]: números inteiros entre -2147483648 e
2147483647. A opção "unsigned" pode ser usada na declaração
mudando o intervalo para 0 e 4294967295 para inteiros nãosinalizados;

!" FLOAT [(M,D)]: números decimais com D casas decimais;

!" DATE: armazena informação relativa a datas. O formato default é
'YYYY-MM-DD' e as datas variam entre '0000-00-00' e '9999-12-31'.
MySQL provê um poderoso conjunto de comandos para formatação e
manipulação de datas;

!" TEXT/BLOB: strings entre 255 e 65535 caracteres. A diferença entre
TEXT e BLOB é que no primeiro o texto não é sensível ao caso e no
segundo sim;

!" SET: conjunto de valores strings;

!" ENUM: conjunto de valores strings, difere do SET pois só são
armazenados valores previamente especificados.