0Pricing
SQL Academy · Aula

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  SERIAL

NUMERIC / 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.3

Tipos 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 (nunca FLOAT)
  • IDs → BIGSERIAL ou UUID
  • Datas → TIMESTAMPTZ para eventos, DATE para 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

  1. O que é um RDBMS e por que as tabelas são importantes
  2. Chaves primárias e unicidade
  3. NULL: o terceiro valor lógico
  4. Visão geral dos tipos de dados: INT VARCHAR DATE BOOLEAN
← Voltar para SQL Academy