Blog do SQL Arena
Tutoriais de SQL — explicações simples, exemplos variados do dia a dia e tabelas de antes e depois.
Fundamentos: SELECT e filtragem
4 artigosO que é SELECT … FROM no SQL? Ler de uma tabela para iniciantes
SELECT é o coração do SQL. Toda consulta começa aqui. Cobrimos a sintaxe, a escolha de colunas específicas, os aliases, os campos calculados, os erros comuns e três exercícios práticos.
O que é WHERE no SQL? Filtragem de linhas para iniciantes
WHERE é o filtro de linhas no SQL. Em linguagem simples e com muitos exemplos: =, IN, BETWEEN, LIKE, IS NULL e AND/OR. Tabelas antes e depois, armadilhas para iniciantes e uma prática rápida no final.
O que é LIMIT no SQL? Limitar o número de linhas para iniciantes
LIMIT limita o resultado de uma consulta a N linhas. Essencial para a paginação, as consultas top-N e as prévias. Cobrimos a sintaxe, OFFSET, as diferenças entre PostgreSQL e MySQL, os erros comuns e três exercícios práticos.
O que é ORDER BY no SQL? Ordenar os resultados de uma consulta para iniciantes
ORDER BY ordena o resultado de uma consulta SQL. Cobrimos ASC e DESC, a ordenação por várias colunas, os NULL na ordenação e o clássico ORDER BY + LIMIT para o top-N. Muitos exemplos e três exercícios.
Junção de tabelas (JOIN)
3 artigosO que é INNER JOIN no SQL? Juntar tabelas para iniciantes
INNER JOIN combina linhas de duas tabelas por uma chave compartilhada. O JOIN mais simples e mais comum. Cobrimos a sintaxe, a cláusula ON, as junções de várias tabelas, os erros comuns e três exercícios práticos.
O que é LEFT JOIN no SQL? Um guia para iniciantes
LEFT JOIN mantém todas as linhas da tabela esquerda; as correspondências ausentes à direita viram NULL. Cobrimos a sintaxe, a diferença em relação ao INNER JOIN, a busca de órfãos e três exercícios.
Aliases (AS) no SQL: aliases de tabelas e colunas para iniciantes
Os aliases são nomes curtos para tabelas e colunas no SQL. Tornam as consultas legíveis e se tornam obrigatórios ao fazer JOIN de tabelas com nomes de coluna compartilhados. Sintaxe, casos imprescindíveis, erros comuns e três exercícios.
Agregação e agrupamento
2 artigosO que é GROUP BY em SQL? Agrupando linhas para iniciantes
GROUP BY é o comando do SQL para "colapsar linhas em grupos e agregar". Em palavras simples: como obter "quantos pedidos cada cliente tem" em uma única consulta. O que você pode e o que não pode colocar no SELECT, a diferença em relação ao DISTINCT, GROUP BY sobre várias colunas e os erros mais comuns.
O que é HAVING em SQL? Filtrando grupos para iniciantes
HAVING é o filtro que roda depois do GROUP BY e se aplica aos agregados. Em palavras simples: WHERE filtra as linhas de entrada, HAVING filtra os grupos de saída. Vamos ver a diferença, os padrões típicos (top-N, anomalias) e por que WHERE e HAVING são confundidos.
Subconsultas e DISTINCT
4 artigosO que é DISTINCT em SQL? Valores únicos para iniciantes
DISTINCT significa "remover duplicados". Em palavras simples: valores únicos de uma coluna ou de uma combinação de colunas, a diferença em relação ao GROUP BY, o tratamento de NULL e o DISTINCT ON específico do PostgreSQL para "uma linha por grupo". Com tabelas de antes/depois e erros comuns.
O que é IN com uma subconsulta em SQL? Verificação de pertencimento para iniciantes
IN com uma subconsulta filtra "linhas em que o valor de uma coluna aparece no resultado de outra consulta". Em palavras simples: filtrar por uma lista dinâmica, a diferença em relação a uma lista literal, a armadilha de NOT IN com NULL e a comparação com EXISTS. Com tabelas e erros comuns.
O que é EXISTS em SQL? Verificação de existência para iniciantes
EXISTS pergunta "existe pelo menos uma linha que satisfaça a condição?". Em palavras simples: um filtro sobre a presença de um registro relacionado (por exemplo, "clientes com pelo menos um pedido"), a diferença em relação a IN com uma subconsulta, NOT EXISTS e o comportamento com NULL.
O que é uma subconsulta escalar em SQL? Um único valor no SELECT para iniciantes
Uma subconsulta escalar é um SELECT que retorna exatamente um valor e se encaixa na posição de uma coluna ou em uma expressão WHERE. Em palavras simples: extrair um campo de uma tabela relacionada, adicionar um número de resumo a cada linha de um relatório, usá-la como constante em uma condição. Com tabelas e erros comuns.
Funções de janela
5 artigosO que é ROW_NUMBER no SQL? Numeração de linhas para iniciantes
ROW_NUMBER atribui "um número sequencial a cada linha". Em poucas palavras: a primeira função de janela que vale a pena aprender. Numeração decrescente, numeração dentro de grupos com PARTITION BY, o padrão clássico top-N por grupo e a remoção de duplicados. Com tabelas e erros comuns.
O que são RANK e DENSE_RANK no SQL? Classificação com empates para iniciantes
RANK e DENSE_RANK são funções de classificação em que valores iguais recebem a mesma posição. Em poucas palavras: a diferença entre ROW_NUMBER (sempre único), RANK (os empates recebem a mesma posição e depois deixam lacunas) e DENSE_RANK (a mesma posição sem lacunas). Com tabelas, um exemplo de estilo olímpico e erros comuns.
O que é PARTITION BY no SQL? Grupos dentro de uma janela para iniciantes
PARTITION BY é a parte de OVER que divide as linhas em grupos para as funções de janela. Em poucas palavras: é como GROUP BY, mas as linhas não são colapsadas: cada linha é mantida, com o agregado do seu grupo adicionado. A diferença em relação ao GROUP BY, os padrões típicos e o comportamento dos agregados dentro das janelas.
O que são LAG e LEAD no SQL? Linhas vizinhas em uma janela para iniciantes
LAG e LEAD retornam o valor da linha **anterior** ou **seguinte** de uma janela. Em poucas palavras: variação dia a dia, tempo até o próximo evento, mudança de preço: tarefas que antes exigiam juntar uma tabela com ela mesma. Com tabelas e erros comuns.
Funções de janela no SQL: ROW_NUMBER, RANK, LAG/LEAD na prática
As funções de janela são a ferramenta que um analista mais usa no SQL. Vamos destrinchar ROW_NUMBER, RANK, LAG/LEAD e PARTITION BY por meio de casos reais: top-N por grupo, métricas de um dia para o outro, somas acumuladas.
CTEs (WITH)
1 artigoAlteração de dados (DML)
3 artigosO que é INSERT em SQL? Adicionar linhas para iniciantes
INSERT é o comando SQL para "adicionar uma nova linha". Em palavras simples: sintaxe básica, inserções em lote de várias linhas de uma só vez, INSERT FROM SELECT, RETURNING para obter os IDs gerados e UPSERT por meio de ON CONFLICT para operações idempotentes. Com tabelas de antes/depois e erros comuns.
O que é UPDATE em SQL? Modificar linhas para iniciantes
UPDATE é o comando SQL para "alterar dados em linhas existentes". Em palavras simples: o que alterar, por que o WHERE é inegociável e como atualizar várias colunas de uma vez. Tabelas de antes/depois, erros típicos de iniciante, uma revisão rápida e três exercícios práticos no final.
O que é DELETE em SQL? Remover linhas para iniciantes
DELETE é o comando SQL para "remover linhas da tabela". Em palavras simples: o que remover, por que o WHERE é inegociável, soft-delete versus hard-delete, a diferença em relação a TRUNCATE e ON DELETE CASCADE. Tabelas de antes/depois, erros comuns, uma revisão rápida e três exercícios práticos.
Estrutura (DDL)
2 artigosO que é CREATE TABLE em SQL? Criar uma tabela para iniciantes
CREATE TABLE é o comando SQL para "criar uma nova tabela". Em palavras simples: quais colunas e de quais tipos, o que fazem NOT NULL, DEFAULT, PRIMARY KEY e FOREIGN KEY, e por que vale a pena pensar no esquema desde o início. Com tabelas de antes/depois, erros típicos de iniciante e três exercícios.
O que é ALTER TABLE no SQL? Alterar a estrutura de uma tabela para iniciantes
ALTER TABLE é o comando SQL para "alterar a estrutura de uma tabela existente". Em poucas palavras: adicionar uma coluna, removê-la, renomeá-la, mudar um tipo, adicionar e remover restrições. Além disso, a principal dor de cabeça em produção: os bloqueios prolongados de tabelas e o padrão adicionar → preencher → remover para migrações seguras.
Strings e datas
3 artigosO que são LOWER, UPPER e LENGTH no SQL? Funções de string para iniciantes
As funções de string são uma ferramenta diária do SQL: normalização de maiúsculas e minúsculas (LOWER, UPPER), comprimento (LENGTH), remoção de espaços (TRIM), substrings (SUBSTRING), substituição (REPLACE). Em poucas palavras: busca sem distinção de maiúsculas, limpeza de dados e armadilhas com Unicode.
O que é CONCAT no SQL? Concatenação de strings para iniciantes
CONCAT significa "juntar strings". Em poucas palavras: três formas (||, CONCAT, CONCAT_WS), como cada uma trata o valor NULL de maneira diferente e por que CONCAT_WS é a melhor escolha para endereços e nomes. Com tabelas e erros comuns.
O que é EXTRACT no SQL? Ano, mês e dia de uma data para iniciantes
EXTRACT extrai uma parte de uma data: ano, mês, dia, hora, dia da semana. Em poucas palavras: como agrupar por ano/mês, filtrar por dia da semana e contar segundos com EPOCH. Comparado com DATE_TRUNC e as diferenças entre PostgreSQL e MySQL.
CASE e NULL
3 artigosO que é CASE WHEN em SQL? Lógica condicional para iniciantes
CASE WHEN é o "if/else dentro do SQL". Em palavras simples: como colocar condições diretamente no SELECT, a diferença entre o CASE de busca e o CASE simples, agrupar números em categorias, pivotar com uma única fórmula e os agregados condicionais. Com tabelas e erros comuns.
O que é COALESCE em SQL? Lidando com NULL para iniciantes
COALESCE retorna o primeiro valor não NULL de uma lista. Em palavras simples: valores padrão para dados ausentes, cadeias de fallback (apelido → nome → 'Convidado'), aritmética segura e a combinação com NULLIF. Com tabelas e erros comuns.
O que é NULLIF em SQL? Divisão segura e limpeza de dados para iniciantes
NULLIF retorna NULL se dois valores forem iguais. Em palavras simples: divisão segura por meio de NULLIF(x, 0), limpeza de valores marcadores como '' ou 'unknown', e a combinação com COALESCE para um tratamento limpo dos dados. Com tabelas e erros comuns.
Outros
2 artigosO que é WITH … AS (CTE) em SQL? Expressões de tabela comuns para iniciantes
WITH … AS é um "resultado intermediário nomeado", também conhecido como CTE (Common Table Expression). Em palavras simples: uma forma de dividir consultas complexas em passos legíveis, reutilizar valores calculados e escrever SQL que você de fato vai querer reler mais tarde. Com tabelas e erros comuns.
O que são COUNT, SUM, AVG, MIN, MAX em SQL? Funções de agregação para iniciantes
As funções de agregação são ferramentas para "calcular algo sobre um grupo de linhas". COUNT — quantas linhas, SUM — o total, AVG — a média, MIN/MAX — o menor e o maior. Em palavras simples: a diferença entre COUNT(*) e COUNT(coluna), como NULL afeta os agregados, cenários comuns e erros frequentes.