• Portfólio
  • Carreira
  • Cases
  • Ferramentas
  • Contato
  • Sobre
  • 🔎
  • 🇧🇷

Cheat Sheet: SQL

Sintaxe e padrões SQL mais usados.

← Todas as ferramentas

SELECT básico

SELECT col1, col2 FROM tabela;Seleciona colunas específicas.
SELECT * FROM t WHERE x = 1;Filtra linhas por condição.
SELECT DISTINCT col FROM t;Retorna valores únicos.
... ORDER BY col DESC;Ordena o resultado.
... LIMIT 10 OFFSET 20;Paginação: limite e deslocamento.
WHERE col IN (1,2,3) AND x LIKE 'a%'Conjuntos e padrões de texto.

JOINs

INNER JOIN b ON b.a_id = a.idSó linhas com correspondência em ambos.
LEFT JOIN b ON b.a_id = a.idTodas de A + correspondentes de B.
RIGHT JOIN b ON b.a_id = a.idTodas de B + correspondentes de A.
FULL OUTER JOIN b ON ...Todas as linhas de ambos os lados.
CROSS JOIN bProduto cartesiano entre A e B.
SELF JOIN: a JOIN a a2 ON ...Junta a tabela com ela mesma.

Agregação & GROUP BY

COUNT(*), SUM(x), AVG(x)Funções de agregação.
MIN(x), MAX(x)Menor e maior valor.
GROUP BY colAgrupa linhas por coluna.
HAVING COUNT(*) > 1Filtra grupos (pós-agregação).
COUNT(DISTINCT col)Conta valores distintos.
SUM(x) OVER (PARTITION BY y)Função de janela (window).

DDL

CREATE TABLE t (id serial PRIMARY KEY, ...)Cria uma tabela.
ALTER TABLE t ADD COLUMN c text;Adiciona uma coluna.
ALTER TABLE t DROP COLUMN c;Remove uma coluna.
DROP TABLE IF EXISTS t;Apaga a tabela se existir.
ADD CONSTRAINT fk FOREIGN KEY ...Adiciona chave estrangeira.
TRUNCATE TABLE t;Esvazia a tabela rapidamente.

Upsert & índices

INSERT INTO t (a,b) VALUES (1,2);Insere uma linha.
ON CONFLICT (id) DO UPDATE SET ...Upsert no Postgres.
ON CONFLICT (id) DO NOTHINGIgnora conflitos de chave.
UPDATE t SET x = 1 WHERE id = 5;Atualiza linhas filtradas.
CREATE INDEX idx ON t (col);Cria índice para acelerar buscas.
CREATE UNIQUE INDEX ... ON t (col);Índice único (garante unicidade).