sábado, 28 de março de 2026

Fundamentos de Banco de Dados Tipagem SQL Aula 13

Guia de Tipos de Dados no MySQL

Entender os tipos de dados no MySQL é fundamental para garantir a performance e a integridade do seu banco de dados. A escolha correta economiza espaço em disco e acelera as consultas.


1. Números Inteiros (Integers)

Utilizados para valores numéricos exatos, sem casas decimais.

  • TINYINT: 1 byte (Range: -128 a 127).
  • INT: 4 bytes (Até ~2,1 bilhões). Ideal para IDs principais.
  • BIGINT: 8 bytes. Usado para volumes massivos de dados (ex: redes sociais).

2. Ponto Flutuante e Decimais

Para valores com frações ou números reais.

Tipo Uso Recomendado
FLOAT/DOUBLE Cálculos científicos (Precisão aproximada).
DECIMAL Valores financeiros/dinheiro (Precisão exata).

3. Cadeias de Caracteres (Strings)

Para textos de qualquer tamanho.

Dica: Use VARCHAR para economizar espaço, pois ele armazena apenas o conteúdo real mais um pequeno prefixo de tamanho.
  • CHAR: Tamanho fixo (mais rápido para códigos pequenos como siglas de países).
  • VARCHAR: Tamanho variável (padrão para nomes e e-mails).
  • TEXT: Para descrições longas ou artigos de blog.

4. Data e Hora (Date/Time)

Gerenciar tempo corretamente evita erros de fuso horário e cálculos manuais complexos.

  • DATE: Formato AAAA-MM-DD.
  • DATETIME: Data e hora completa. Range de 1000 a 9999.
  • TIMESTAMP: Registra o momento exato (UTC). Atenção: Limite até o ano 2038.

⚠️ O Mistério do TIMESTAMP

O TIMESTAMP é o queridinho para logs porque ele entende fusos horários (UTC). Porém, ele tem um "prazo de validade".

Como ele utiliza 32 bits para contar os segundos desde 1970, ele atingirá seu limite máximo em 19 de janeiro de 2038. Para eventos que ocorrem após essa data (como parcelas de um financiamento de 30 anos), prefira sempre o DATETIME, que suporta datas até o ano 9999.

Tipo Exemplo Real Formato de Saída
DATE Data de Nascimento AAAA-MM-DD
DATETIME Reserva de Hotel AAAA-MM-DD HH:MM:SS
TIMESTAMP Log de Erro no Sistema AAAA-MM-DD HH:MM:SS (UTC)

Por que o Range e o Formato importam?

Definir o intervalo (range) correto evita o desperdício de memória RAM e disco. Um banco de dados bem estruturado permite que os Índices funcionem de forma otimizada, garantindo que seu site carregue rápido mesmo com milhões de linhas.

Tipagem MySQL

Os Dados estão divididos por categorias (Inteiros, Ponto Flutuante, String e Data/Hora).

1. Tipos Numéricos (Inteiros)

Tipo Bytes Valor Mínimo (Signed) Valor Máximo (Signed) Máximo (Unsigned)
TINYINT 1 -128 127 255
SMALLINT 2 -32.768 32.767 65.535
INT 4 -2.147.483.648 2.147.483.647 4.294.967.295
BIGINT 8 -2^63 2^63-1 2^64-1

2. Tipos de Texto (Strings)

Tipo Limite / Tamanho Melhor Uso
CHAR(n) Até 255 caracteres Tamanho fixo (Ex: Siglas, Sexo, CEP)
VARCHAR(n) Até 65.535 caracteres Tamanho variável (Nomes, e-mails, títulos)
TEXT 64 KB Corpo de artigos, comentários longos
LONGTEXT 4 GB Logs extensos ou livros completos

3. Tipos de Data e Hora

Tipo Formato Intervalo (Range)
DATE YYYY-MM-DD 1000-01-01 a 9999-12-31
DATETIME YYYY-MM-DD HH:MM:SS 1000-01-01 a 9999-12-31
TIMESTAMP YYYY-MM-DD HH:MM:SS 1970-01-01 a 2038-01-19 (UTC)
Desafio MySQL: Tipagem de Dados - Prof. Carlos

Pesquisa de Integridade: Tipagem MySQL

Valide seus conhecimentos sobre a estrutura de dados para o blog.

1. Qual tipo de dado ocupa apenas 1 byte e é ideal para idades (0-255)?
É a menor variação do tipo inteiro.
2. Para armazenar nomes de cidades que variam de tamanho, qual o melhor tipo?
Este tipo economiza espaço ao não preencher com brancos o que não foi usado.
3. Qual tipo garante precisão exata para valores monetários (R$)?
Evita os famosos erros de arredondamento do tipo FLOAT.
4. O tipo DATETIME armazena valores no formato:
Padrão internacional: Ano-Mês-Dia Hora:Minuto:Segundo.
5. Qual a principal característica do tipo ENUM?
Funciona como uma lista de opções pré-definidas.
6. Para um campo 'status' (Ativo/Inativo), o MySQL geralmente usa:
O BOOLEAN no MySQL é um apelido para um inteiro muito pequeno.
7. O atributo UNSIGNED em um campo INT serve para:
Remove a capacidade de armazenar números negativos.
8. Qual tipo é indicado para armazenar o corpo de um artigo de blog?
Indicado para textos muito longos que ultrapassam 65 mil caracteres.
9. Qual comando exibe a tipagem das colunas de uma tabela?
A palavra em inglês significa 'descrever'.
10. O tipo BLOB é utilizado para armazenar:
Dados binários como imagens ou arquivos PDF.

Nenhum comentário:

Postar um comentário