Guia Completo de Decisão (A vs B vs C)
⚡ Abrir Lista Compacta de Todos os Comandos & Tipos →

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.

3. Números com Vírgula: Decimais Exatos vs Ponto Flutuante

Para dinheiro, preços, salários, impostos, pesos em kg, medidas e sensores.

3 Tipos SQL nesta categoria

⚖️ O que muda se eu usar (A) DECIMAL, (B) FLOAT ou (C) DOUBLE?

Comparativo de Impacto Real (A vs B vs C)
A Moeda, Preços, Fiscal e Pesos Comerciais

Opção A: Usar DECIMAL(M, D) / NUMERIC(M, D)

🔄 O que muda no banco: O banco guarda o número em base 10 EXATA, dígito por dígito. `0.10 + 0.20` será SEMPRE `0.30` cravado, sem nenhuma dízima oculta.
✅ Vantagem: Zero erro de arredondamento de centavos! Obrigatório por lei/auditoria em qualquer sistema financeiro, de faturamento, estoque ou e-commerce.
⚠️ Cuidado / Limitação: Levemente mais lento para cálculos trigonométricos/científicos pesados do que FLOAT/DOUBLE.
🎯 Use SEMPRE para dinheiro (`DECIMAL(10,2)`), taxas (`DECIMAL(5,2)`) e pesos (`DECIMAL(8,3)`).
B Aproximação Científica Simples

Opção B: Usar FLOAT (4 Bytes)

🔄 O que muda no banco: Converte o número para fração binária (IEEE 754) de 32 bits. Garante apenas ~7 dígitos significativos de precisão.
✅ Vantagem: Gasta apenas 4 bytes e é calculado instantaneamente pelo hardware para gráficos e sensores.
⚠️ Cuidado / Limitação: Se você salvar `19.99`, na memória binária ele pode virar `19.9899997711`. Em somas de 1.000 itens, o valor final fica errado!
🎯 Use apenas para sensores de temperatura, umidade, velocidade ou métricas onde 0,0001 de diferença não importa.
C Aproximação Científica Dupla

Opção C: Usar DOUBLE / REAL (8 Bytes)

🔄 O que muda no banco: Igual ao FLOAT, porém com 64 bits (~15 a 17 dígitos de precisão). Continua sendo binário aproximado.
✅ Vantagem: Excelente para cálculos físicos, astronômicos, estatísticos ou Machine Learning.
⚠️ Cuidado / Limitação: Ainda sofre com `0.1 + 0.2 != 0.3` na base binária, portanto também NÃO deve ser usado para dinheiro.
🎯 Use para cálculos científicos e estatísticos de alta amplitude.
DECIMAL(M, D) / NUMERIC(M, D) 📐 DrawDB: DECIMAL | Size: M,D (ex: 10,2 ou 12,2)
💾 ~4 Bytes a cada 9 dígitos (DECIMAL(10,2) ocupa 5 Bytes)

📌 Para que serve este Tipo SQL:

Armazenar qualquer valor onde cada casa depois da vírgula precisa ser 100% exata. M = total de dígitos; D = casas após a vírgula.

📍 Onde posso usar:

  • • Preços, salários, fretes, descontos: DECIMAL(10, 2) -> até 99.999.999,99
  • • Saldos financeiros grandes: DECIMAL(14, 2)
  • • Peso em quilos/gramas: DECIMAL(8, 3) -> ex: 1,250 kg
  • • Cotações cambiais e criptomoedas: DECIMAL(18, 8)

⚖️ O que muda se eu escolher este?

Garante precisão contábil absoluta. Se tentar gravar 3 casas decimais em um DECIMAL(10,2), o banco arredonda para 2 casas automaticamente.

🐘 PHP PDO: No PDO, passe como string (PDO::PARAM_STR) e some no PHP com bcadd() / bcsub() / bcmul()!
Ver código SQL/PHP →
FLOAT 📐 DrawDB: FLOAT | Size: vazio
💾 4 Bytes (Precisão simples ~7 dígitos)

📌 Para que serve este Tipo SQL:

Medições físicas contínuas e aproximadas que ocupam pouco espaço.

📍 Onde posso usar:

  • • Temperatura ambiente (°C), umidade do ar (%), nível de bateria, leitura de sensores IoT

⚖️ O que muda se eu escolher este?

Ocupa pouco espaço, mas perde precisão a partir do 7º dígito. Nunca faça `WHERE preco = 10.50` em coluna FLOAT.

🐘 PHP PDO: Converta com (float) no PHP.
Ver código SQL/PHP →
DOUBLE / DOUBLE PRECISION 📐 DrawDB: DOUBLE | Size: vazio
💾 8 Bytes (Precisão dupla ~15 a 17 dígitos)

📌 Para que serve este Tipo SQL:

Cálculos científicos, engenharia, pontuação de algoritmos de recomendação e estatística.

📍 Onde posso usar:

  • • Scores de relevância de busca, pesos matemáticos, vetores científicos

⚖️ O que muda se eu escolher este?

Dobra a precisão do FLOAT (usando 8 bytes em vez de 4), evitando estouros em números muito grandes ou muito pequenos.

🐘 PHP PDO: Equivale diretamente ao tipo `float` de 64-bits nativo do PHP.
Ver código SQL/PHP →