O núcleo dos bancos relacionais: consultar, filtrar, juntar, agregar e alterar dados, além das instruções de esquema e transação do dia a dia. SQL padrão que funciona em PostgreSQL, MySQL, SQLite e na maioria dos motores — salvo pequenas diferenças de dialeto.
Imprima ou salve esta página para consulta offline.
Consultar
Comando
Descrição
SELECT * FROM users;
Retorna todas as colunas e linhas de uma tabela.
SELECT name, email FROM users;
Retorna apenas as colunas indicadas.
SELECT DISTINCT country FROM users;
Retorna valores únicos, removendo duplicados.
SELECT COUNT(*) FROM users;
Conta o número de linhas.
Filtrar e ordenar
Comando
Descrição
WHERE age >= 18
Mantém apenas as linhas que atendem à condição.
WHERE name LIKE 'A%'
Correspondência de padrão: nomes começando com A.
WHERE id IN (1,2,3)
Corresponde a qualquer valor de uma lista.
ORDER BY created_at DESC
Ordena as linhas, mais recentes primeiro.
LIMIT 10 OFFSET 20
Retorna 10 linhas, pulando as 20 primeiras (paginação).
Junções
Comando
Descrição
INNER JOIN orders ON orders.user_id = users.id
Linhas com correspondência em ambas as tabelas.
LEFT JOIN orders ON ...
Todas as linhas à esquerda, mais correspondências (NULL quando não há).
COUNT(*) ... GROUP BY user_id
Agrega linhas em grupos.
HAVING COUNT(*) > 5
Filtra grupos após a agregação.
Modificar dados
Comando
Descrição
INSERT INTO users (name) VALUES ('Ada');
Adiciona uma nova linha.
UPDATE users SET active = true WHERE id = 1;
Altera linhas existentes — sempre com WHERE.
DELETE FROM users WHERE id = 1;
Remove linhas que atendem à condição.
UPSERT / ON CONFLICT DO UPDATE
Insere, ou atualiza a linha se já existir.
Esquema
Comando
Descrição
CREATE TABLE t (id INTEGER PRIMARY KEY, name TEXT);