Visão geral dos tipos de dados: INT VARCHAR DATE BOOLEAN
Aprenda os principais tipos de dados SQL: inteiros, varchar/texto, datas e marcas de tempo, valores booleanos e decimais, e como escolher o tipo certo para cada coluna.
Visão geral dos tipos de dados: INT VARCHAR DATE BOOLEAN é uma aula grátis de SQL Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de SQL Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de SQL Academy inclui 4 aulas no total.
Por que os tipos são importantes
Cada coluna tem um tipo fixo. O tipo define:
- Quais valores são válidos
- Quanto armazenamento cada linha usa
- Quais operadores e funções se aplicam
- Como o planejador escolhe índices e junções
Tipos inteiros
O PostgreSQL tem três tamanhos de inteiros:
SMALLINT -- 2 bytes, -32768 to 32767
INTEGER -- 4 bytes, ±2.1 billion (alias: INT)
BIGINT -- 8 bytes, ±9.2 quintillion
-- Auto-incrementing variants:
SMALLSERIAL BIGSERIAL SERIALNUMERIC / decimal
Para valores monetários e decimais exatos, use NUMERIC(precision, scale) — nunca FLOAT.
CREATE TABLE invoices (
id BIGSERIAL PRIMARY KEY,
amount NUMERIC(12, 2) NOT NULL, -- up to 10 digits + 2 decimals
tax_rate NUMERIC(5, 4) NOT NULL -- 0.0875 = 8.75%
);Ponto flutuante versus NUMERIC
REAL (4 bytes) e DOUBLE PRECISION (8 bytes) são imprecisos — arredondam frações binárias. São adequados para ciência, mas péssimos para valores monetários.
-- Inexact:
SELECT 0.1::FLOAT + 0.2::FLOAT; -- 0.30000000000000004
-- Exact:
SELECT 0.1::NUMERIC + 0.2::NUMERIC; -- 0.3Tipos de texto: VARCHAR versus TEXT
O PostgreSQL tem dois tipos principais de texto:
-- VARCHAR(n) — variable-length, max n characters
email VARCHAR(255)
-- TEXT — variable-length, no declared limit
description TEXT
-- In PostgreSQL both have the same performance.
-- VARCHAR(n) just adds a length check.
-- CHAR(n) (fixed-length, blank-padded) — avoid.Data e hora
Use os tipos de data e hora — nunca armazene datas como cadeias de caracteres:
DATE -- 2024-03-15
TIME -- 14:30:00
TIMESTAMP -- 2024-03-15 14:30:00 (no time zone)
TIMESTAMPTZ -- 2024-03-15 14:30:00+02 (recommended)
INTERVAL -- 1 day, 3 hours
-- Prefer TIMESTAMPTZ unless you have a strong reason not to.BOOLEAN
BOOLEAN armazena TRUE, FALSE ou NULL.
CREATE TABLE tasks (
id BIGSERIAL PRIMARY KEY,
done BOOLEAN NOT NULL DEFAULT false
);
SELECT * FROM tasks WHERE done; -- shorthand for done = true
SELECT * FROM tasks WHERE NOT done;UUID
Para identificadores globalmente exclusivos:
CREATE TABLE api_keys (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id BIGINT NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);JSON e JSONB
Para documentos semiestruturados:
-- JSON — text, preserves whitespace, no index
-- JSONB — binary, deduplicated keys, indexable with GIN
CREATE TABLE events (
id BIGSERIAL PRIMARY KEY,
payload JSONB NOT NULL
);Matrizes
As colunas do PostgreSQL podem ser matrizes de qualquer tipo básico:
CREATE TABLE posts (
id BIGSERIAL PRIMARY KEY,
title TEXT NOT NULL,
tags TEXT[] NOT NULL DEFAULT '{}'
);
INSERT INTO posts (title, tags) VALUES
('Hello', ARRAY['sql', 'intro']);
SELECT * FROM posts WHERE 'sql' = ANY(tags);Escolhendo o tipo certo
Regras gerais:
- Valores monetários →
NUMERIC(nuncaFLOAT) - IDs →
BIGSERIALouUUID - Datas →
TIMESTAMPTZpara eventos,DATEpara dias do calendário - Códigos curtos →
VARCHAR(n); textos longos →TEXT - Indicadores →
BOOLEAN
Recapitulação
Escolha o tipo mais específico que seja suficiente.
- Tipos adequados = índices menores, estatísticas melhores e menos erros
- NUMERIC para decimais exatos
- TIMESTAMPTZ para marcas de tempo de eventos
- Evite armazenar dados tipados como cadeias de caracteres — você perde validação e indexação
Verificação rápida
Você precisa armazenar o preço de um produto. Qual tipo deve escolher?
Perguntas Frequentes
A aula “Visão geral dos tipos de dados: INT VARCHAR DATE BOOLEAN” é grátis?
Sim — o texto completo de “Visão geral dos tipos de dados: INT VARCHAR DATE BOOLEAN” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de SQL Academy, atualize para CoddyKit PRO. O curso de SQL Academy inclui 4 aulas no total.
O que vou aprender em “Visão geral dos tipos de dados: INT VARCHAR DATE BOOLEAN”?
Aprenda os principais tipos de dados SQL: inteiros, varchar/texto, datas e marcas de tempo, valores booleanos e decimais, e como escolher o tipo certo para cada coluna. Você pratica SQL Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar SQL Academy?
Nenhuma experiência prévia é necessária. SQL Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Visão geral dos tipos de dados: INT VARCHAR DATE BOOLEAN”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de SQL Academy?
Sim. Cada aula de SQL Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- O que é um RDBMS e por que as tabelas são importantes
- Chaves primárias e unicidade
- NULL: o terceiro valor lógico
- Visão geral dos tipos de dados: INT VARCHAR DATE BOOLEAN