Tipos de dados no MySQL

Existem vários tipos de campos no MySQL. Eles servem para diferenciar os tipos dos dados que são armazenados em cada coluna, onde cada tipo tem uma características. Elas podem ser comparadas aos tipos de variáveis nas linguagens de programação que tem uma tipagem forte (não é o caso do PHP).

Estes tipos de dados são importantes na hora de preparar seu banco de dados e criar suas tabelas, pois você precisa saber o que pretende armazenar em cada coluna para poder definir seus dados.

Podemos classificá-los em 3 tipos:

  1. Númericos
  2. Data
  3. Cadeia (String, texto, etc…)

Numéricos

TinyInt – Caso haja valor negativo, a margem de uso dele é de -128 até 127. Caso seja apenas positivo, vai de 0 a 255.

Integer / Int – Número inteiro, positivo ou negativo. Caso haja número negativo, sua margem vai de -2147483648 até 2147483647. Caso sejam só positivos, é de 0 até 429.496.295.

SmallInt – Número inteiro com ou sem sinal negativo. Caso haja sinal negativo, vai de -32768 até 32767. Sem sinal, vai de 0 até 65535.

MediumInt – Número inteiro, com ou sem sinal negativo. Com sinal vai de -8.388.608 até 8.388.607. Sem sinal vai de 0 até 16777215.

BigInt – Número inteiro, com ou sem sinal negativo. Com sinal vai de -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. Sem sinal vai de 0 até 18.446.744.073.709.551.615.

Bool / Boolean / Bit – Número inteiro que pode ser somente 0 (falso) ou 1 (verdadeiro).

Float(m,d) – Número pequeno em vírgula flutuante de precisão simples. Os valores válidos vão desde -3.402823466E+38 até -1.175494351E-38,0 até desde 175494351E-38 até 3.402823466E+38.

xReal / Double – Número em vírgula flutuante de dupla precisão. Os valores permitidos vão desde -1.7976931348623157E+308 até -2.2250738585072014E-308, 0 e desde 2.2250738585072014E-308 até 1.7976931348623157E+308

Decimal / Dec / Numeric – Número em vírgula flutuante desempacotado. O número armazena-se como uma cadeia.

Datas

Date – Armazena uma data com valor entre ‘1000-01-01’ e ‘9999-12-31’. Perceba que o formato suportado é  ‘AAAA-MM-DD’.

DateTime – Armazena a data e hora combinadas. Suporta valores entre ‘1000-01-01 00:00:00’ e ‘9999-12-31 23:59:59’. Perceba que o formato suportado é ‘AAAA-MM-DD HH:MM:SS’.

TimeStamp – Combinação de data e hora. A margem vai desde o 1 de Janeiro de 1970 ao ano 2037. O formato de armazenamento depende do tamanho do campo.

14 AnoMesDiaHoraMinutoSegundo aaaammddhhmmss
12 AnoMesDiaHoraMinutoSegundo aammddhhmmss
8 AnoMesDia aaaammdd
6 AnoMesDia aammdd
4 AnoMes aamm
2 Ano aa

Time – Armazena uma hora. A margem de horas vai desde -838 horas, 59 minutos e 59 segundos. O formato de armazenamento é ‘HH:MM:SS’.

Year Armazena um ano. A margem de valores permitidos vai desde o ano 1901 ao ano 2155. O campo pode ter tamanho dois ou tamanho 4 dependendo de se queremos armazenar o ano com dois ou quatro algarismos.

Cadeias (Strings)

Char(n) – Armazena uma string de tamanho fixo. A cadeia poderá conter de 0 até 255 caracteres.

VarChar(n) – Armazena uma string de tamanho variável. Vai de 0 a 255 caracteres. Dentro dos tipos de cadeia pode-se distinguir dois subtipos, os tipo Test e os tipo Blob (Binary Large Object) A diferença entre um tipo e outro é o tratamento que recebem na hora de ordená-los e compará-los. No tipo test ordena-se sem ter importância as maiúsculas e as minúsculas e no tipo blob ordena-se tendo em conta as maiúsculas e minúsculas.

TinyText / TinyBlob – String de tamanho fixo de 0 a 255 caracteres.

MediumText / MediumBlob – Um texto com um máximo de 16.777.215 caracteres.

LongText / LongBlob – Um texto com um máximo de caracteres 4.294.967.295.

Text / Blob – Um texto com um máximo de 65.535 caracteres.

Enum – Campo que pode ter um único valor de uma lista que se especifica. O tipo Enum aceita até 65.535 valores diferentes.

Set – Um campo que pode conter nenhum, um ou vários valores de uma lista. A lista pode ter um máximo de 64 valores.

Com este post, você terá uma noção melhor de cada tipo de dados que o MySQL pode armazenar nas tabelas de seus projetos. Em breve falarei como trabalhar de uma forma um pouco mais avançada com alguns deles.

Não esquece de comentar e dar o seu voto!

Grande abraço! 🙂

Sou bacharel em Sistemas de Informação pela Estácio de Sá (Alagoas), especialista em Gestão Estratégica da Tecnologia da Informação pela Univ. Gama Filho (UGF) e pós-graduando em Gestão da Segurança da Informação pela Univ. do Sul de Santa Catarina (UNISUL). Certificações que possuo: EC-Council CEH, CompTIA (Security+, CySA+ e Pentest+), EXIN (EHF e ISO 27001), MCSO, MCRM, ITIL v3. Tenho interesse por todas as áreas da informática, mas em especial em Gestão e Governança de TI, Segurança da Informação e Ethical Hacking.

2 Responses to “Tipos de dados no MySQL”

  1. […] INT, TINYTEXT, VARCHAR, TEXT – São os tipos de dados (Você pode saber mais sobre estes tipos aqui); […]

  2. Plínio disse:

    Parabens pelo blog! Muito legal mesmo!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *