Tipos de Dados: Escolhendo a Coluna Certa
1 min de leitura
fonte
Cada coluna de uma tabela declara um tipo, e o banco rejeita qualquer valor que não seja compatível. Isso evita erro bobo, como guardar texto onde devia ter número.
Os tipos que cobrem a maioria dos casos
CREATE TABLE produtos (
id SERIAL PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
descricao TEXT,
preco NUMERIC(10, 2) NOT NULL,
em_estoque BOOLEAN DEFAULT true,
criado_em TIMESTAMP DEFAULT now()
);
SERIAL: número inteiro que se auto-incrementa, comum em chave primária.VARCHAR(n): texto curto, com limite de tamanho (nome, título, e-mail).TEXT: texto longo, sem limite prático (descrição, comentário).NUMERIC(10, 2): número decimal exato, essencial para dinheiro (10 dígitos no total, 2 depois da vírgula).BOOLEAN: verdadeiro ou falso.TIMESTAMP: data e hora juntas.
A pegadinha do dinheiro
-- errado: FLOAT perde precisão em cálculo com dinheiro
preco FLOAT
-- certo: NUMERIC guarda o valor exato
preco NUMERIC(10, 2)
FLOAT representa número decimal de forma aproximada. Para preço,
essa aproximação pode gerar diferença de centavos depois de várias
operações. NUMERIC guarda o valor exato, sem arredondamento
oculto.
Dica: na dúvida entre
VARCHAR(n)eTEXT, useTEXTse não souber o limite real. No PostgreSQL, os dois têm a mesma performance. O limite doVARCHARserve só como validação.
No próximo nó, você vai criar a primeira tabela de verdade, com chave primária e restrições.
// recursos
// avaliação da trilha
—
ainda sem avaliações