Skip to content

Fundamentos de SQL

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

ComandoDescriçã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

ComandoDescrição
WHERE age >= 18Manté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 DESCOrdena as linhas, mais recentes primeiro.
LIMIT 10 OFFSET 20Retorna 10 linhas, pulando as 20 primeiras (paginação).

Junções

ComandoDescrição
INNER JOIN orders ON orders.user_id = users.idLinhas 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_idAgrega linhas em grupos.
HAVING COUNT(*) > 5Filtra grupos após a agregação.

Modificar dados

ComandoDescriçã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 UPDATEInsere, ou atualiza a linha se já existir.

Esquema

ComandoDescrição
CREATE TABLE t (id INTEGER PRIMARY KEY, name TEXT);Define uma nova tabela e suas colunas.
ALTER TABLE t ADD COLUMN email TEXT;Adiciona uma coluna a uma tabela existente.
CREATE INDEX idx ON t (email);Acelera buscas por uma coluna.
FOREIGN KEY (user_id) REFERENCES users(id)Impõe uma relação entre duas tabelas.

Transações

ComandoDescrição
BEGIN;Inicia uma transação.
COMMIT;Torna permanentes todas as mudanças da transação.
ROLLBACK;Desfaz todas as mudanças desde o BEGIN.
SAVEPOINT sp1;Marca um ponto para reverter parcialmente.

Coloque isto em prática no Android com o Gerenciador de banco de dados.