Todos os Tipos SQL: Para que servem, Onde usar e O que muda entre A, B ou C
Consulte todos os tipos de campos do banco de dados organizados por categoria funcional. Entenda exatamente para que serve cada tipo, onde aplicar no seu projeto e o que muda na prática se você escolher o tipo A, B ou C na hora de desenhar no DrawDB e programar em PHP.
2. Números Inteiros (Contagens, Quantidades e Códigos)
Para números sem vírgula: idades, estrelas, estoque, visualizações, anos e IDs.
⚖️ O que muda se eu usar (A) TINYINT, (B) SMALLINT, (C) INT ou (D) BIGINT? E Signed vs UNSIGNED?
Comparativo de Impacto Real (A vs B vs C)Opção A: TINYINT (1 Byte) ou SMALLINT (2 Bytes)
Opção B: INT / INTEGER (4 Bytes)
Opção C: BIGINT (8 Bytes) + Diferença UNSIGNED
📌 Para que serve este Tipo SQL:
Guardar números inteiros muito pequenos cujo valor jamais passará de 255.
📍 Onde posso usar:
- • Idade de uma pessoa (0 a 150)
- • Nota de avaliação / estrelas (1 a 5 ou 0 a 10)
- • Dia da semana (1 a 7), mês do ano (1 a 12)
- • Número de parcelas no cartão (1 a 24)
⚖️ O que muda se eu escolher este?
Gasta apenas 1 byte (8x menor que um BIGINT). Se marcar UNSIGNED, impede valores negativos como idade -5.
📌 Para que serve este Tipo SQL:
Guardar números inteiros pequenos/médios que passam de 255 mas não passam de 65 mil.
📍 Onde posso usar:
- • Ano de publicação/fabricação (ex: 1500 a 2100)
- • Quantidade de páginas de um livro ou carga horária de curso
- • Quantidade de unidades de um item dentro de um pedido
- • Ordem de exibição de categorias/banners (1, 2, 3...)
⚖️ O que muda se eu escolher este?
Economiza metade do espaço de um INT comum (2 bytes vs 4 bytes) mantendo folga até 65.535.
📌 Para que serve este Tipo SQL:
Faixa intermediária exclusiva do MySQL para contadores de até 16,7 milhões.
📍 Onde posso usar:
- • IDs de tabelas de médio porte ou códigos municipais IBGE (7 dígitos) em projetos exclusivamente MySQL.
⚖️ O que muda se eu escolher este?
Se você migrar o banco para PostgreSQL no futuro, o Postgres não tem MEDIUMINT (terá que virar INTEGER de 4 bytes). Na dúvida, use INT.
📌 Para que serve este Tipo SQL:
O inteiro universal padrão de qualquer banco de dados relacional.
📍 Onde posso usar:
- • Saldo de estoque de produtos (`estoque_atual INT NOT NULL DEFAULT 0`)
- • Duração de vídeos ou músicas em segundos
- • Contador de visualizações, downloads ou curtidas
- • Chaves primárias e estrangeiras de tabelas de até centenas de milhões de linhas
⚖️ O que muda se eu escolher este?
É 100% compatível com todos os bancos (MySQL, PostgreSQL, SQLite, SQL Server) e tem velocidade máxima no processador.
📌 Para que serve este Tipo SQL:
Números inteiros gigantescos, chaves primárias de alto volume e valores monetários armazenados em centavos.
📍 Onde posso usar:
- • Chave primária (`id BIGINT UNSIGNED AUTO_INCREMENT`) de pedidos, logs, mensagens, notas fiscais
- • Contadores globais de redes sociais ou eventos de telemetria
- • Valores em centavos quando se usa o padrão Money Pattern
⚖️ O que muda se eu escolher este?
Garante que a tabela nunca vai travar por falta de IDs disponíveis, ao custo de usar 8 bytes por coluna em vez de 4.