Write a query. See the rows.
Run real SQL against a practice bakery in your browser. The first lesson is free and takes about a minute.
- Try the first drills
- No install
- Instant check
How it works
- 1
Read a short task.
Each lesson is a question about a small shop database.
- 2
Write a query.
Type SELECT in the editor. PostgreSQL runs it in your browser.
- 3
See the rows.
Your result is checked at once. Stuck? Ask for a hint.
0 de 34 lições concluídas
Fundamentos
Grátis: leia, ordene e filtre uma tabela.
- Seu primeiro SELECTLeia colunas de uma tabela, ordene as linhas e remova duplicatas.Free
- Filtrar linhas com WHEREMantenha somente as linhas que atendem a uma condição, incluindo intervalos e valores ausentes.Free
- Padrões, listas e os primeiros resultadosCompare texto com LIKE, teste contra uma lista com IN e mantenha só as primeiras linhas com LIMIT.Free
Resumos
Contagem, soma e média, por grupo.
Junções
Combine tabelas pelas suas chaves, inclusive as linhas que não têm correspondência.
- Combine tabelas com JOINRelacione linhas de duas tabelas por uma chave em comum e depois agrupe as linhas combinadas.Pro
- Mantenha linhas sem correspondência: LEFT JOINUma junção interna descarta linhas sem correspondência. Uma junção à esquerda as mantém, e é assim que você encontra o que está faltando.Pro
- Mantenha linhas sem correspondência dos dois lados: RIGHT e FULL JOINUm RIGHT JOIN mantém todas as linhas da tabela da direita. Um FULL JOIN mantém as linhas sem correspondência das duas tabelas.Pro
- Compare linhas dentro de uma mesma tabelaJunte uma tabela a ela mesma para comparar as linhas entre si, sem repetir pares.Pro
- Muitos para muitos por meio de uma tabela intermediáriaPedidos e produtos se ligam pela tabela order_items. Juntar por essa tabela responde perguntas no nível do produto.Pro
- Todas as combinações: CROSS JOIN e o atalho USINGCROSS JOIN combina cada linha com todas as linhas de outra tabela. USING encurta uma junção por uma coluna com o mesmo nome nas duas tabelas.Pro
Mais consultas
CASE, subconsultas, funções de janela, UNION e funções de texto e data.
- Decidir por condições: CASE WHENCASE é a versão SQL de IF e IFS: escolhe um valor para cada linha, conforme as condições.Pro
- Consultas dentro de consultas: subconsultas, WITH e EXISTSUma subconsulta é um SELECT dentro de outra consulta. WITH dá um nome a uma subconsulta para que você possa reutilizá-la. EXISTS, ANY e ALL comparam uma linha com um conjunto de linhas.Pro
- Ranking e totais acumulados: funções de janelaOVER adiciona um cálculo entre linhas sem agrupá-las, como RANK e totais acumulados no Excel.Pro
- Olhando linhas vizinhas: LAG, LEAD e DENSE_RANKLAG e LEAD leem a linha anterior ou a seguinte sem um join. DENSE_RANK classifica sem lacunas. Empates mudam os totais acumulados.Pro
- Empilhar resultados: UNION e UNION ALLUNION junta as linhas de duas consultas em um único resultado. UNION ALL mantém as repetições. As duas precisam ter o mesmo número de colunas.Pro
- Sobreposição e diferença: INTERSECT e EXCEPTINTERSECT mantém as linhas encontradas nos dois resultados. EXCEPT mantém as linhas do primeiro resultado que não aparecem no segundo.Pro
- Texto e datas: juntar, cortar e contarJunte textos com ||, mude maiúsculas e minúsculas, extraia parte de um valor e calcule os dias entre duas datas.Pro
- Mais ferramentas de texto e datas: REPLACE, SPLIT_PART e generate_seriesSubstitua e divida textos, some dias a uma data e crie uma lista de datas para encontrar as lacunas.Pro
- Converter e comparar: CAST, NULLIF, ILIKE e paginaçãoMude o tipo de um valor, evite divisão por zero, compare textos ignorando maiúsculas e minúsculas e busque resultados uma página por vez.Pro
Alterando dados
Adicione, altere e remova linhas com segurança.
- Adicionar, alterar e remover linhasINSERT, UPDATE e DELETE, copiar linhas com INSERT SELECT ou CREATE TABLE AS, e por que UPDATE e DELETE precisam de um WHERE.Pro
- Inserir ou atualizar: ON CONFLICT e RETURNINGUm upsert insere uma linha ou a atualiza quando a chave já existe. RETURNING mostra as linhas que foram alteradas.Pro
- Criar uma tabela com regras: CREATE TABLE e transaçõesCREATE TABLE define as colunas e as regras de uma nova tabela, inclusive UNIQUE e chaves numeradas automaticamente. Uma transação agrupa alterações para que ROLLBACK possa desfazê-las.Pro
- Alterar a estrutura: ALTER TABLE, views e índicesAdicione colunas e regras a uma tabela existente, salve uma consulta como view, acelere buscas com um índice e remova o que não é mais necessário.Pro
Do Excel
Pesquisas, SOMASE, tabelas dinâmicas e matrizes dinâmicas, em SQL.
- Do PROCV ao JOINSe você conhece VLOOKUP e XLOOKUP, já conhece a ideia por trás de um JOIN.Pro
- SUMIF, COUNTIFS e tabelas dinâmicas em SQLSomas e contagens condicionais viram WHERE com SUM ou COUNT. Uma tabela dinâmica vira GROUP BY em duas colunas.Pro
- FILTER, UNIQUE e SORT em SQLFunções de matriz dinâmica correspondem a WHERE, DISTINCT e ORDER BY.Pro
Banco de dados de funcionários
Um segundo banco de dados de prática, de uma pequena empresa: organogramas, salários, datas de contratação e molduras de janela.
- Organogramas com WITH recursivoPercorra uma cadeia de gerentes para cima ou para baixo, em quantos níveis forem necessários, com uma expressão de tabela comum recursiva.Pro
- Salários: N-ésimo maior, por departamento e acima da médiaClassifique com empates, pegue a linha do topo de cada grupo e compare cada valor com a média do seu grupo.Pro
- Gerentes e pares: autojunções em funcionáriosUna a tabela de funcionários a ela mesma para mostrar gerentes, contar subordinados diretos e encontrar pares.Pro
- Moldura de janela: somas acumuladas e médias móveisROWS BETWEEN define quais linhas um cálculo de janela considera: um total acumulado, uma média móvel e como os empates são tratados.Pro
Prática de entrevista
As perguntas que sempre voltam: N-ésimo maior, top por grupo, duplicatas e variação no tempo.
- Padrões de entrevista: N-ésimo maior, top por grupo, duplicatasAs perguntas que aparecem sempre em entrevistas de SQL, cada uma com mais de uma resposta correta.Pro
- Padrões de entrevista: primeira linha por grupo, variação no tempo, participação no totalPerguntas com funções de janela que transformam uma tabela em um relatório.Pro
Estudo de caso
Responda a perguntas reais sobre um mês de vendas.
Write a query. See the rows.
SQL DailyDrills is practice in the browser: you type SQL, press Check, and see the result table. Nothing to install. The first lesson is free and takes about a minute.
Perguntas frequentes
Where does the SQL run?
In your browser, on PostgreSQL (PGlite). Queries never leave your computer. The core of SQL is the same in MySQL, SQL Server and SQLite; the reference pages point out where they differ.
What data am I querying?
A small bakery for most lessons: products, orders and customers. Later lessons use a small company database for employees and org charts.
É mesmo gratuito?
The first 3 lessons are free to try, with no account and no credit card. Sign up free to continue; Pro unlocks the rest of the course.
Preciso de uma conta?
Not for the first exercises. Try those in the browser; create a free account when you want to continue.
See also the guides and the SQL reference.