Lição 2
SELECT, WHERE e ORDER BY
Leia a forma central de queries SQL do dia a dia.
A maior parte do SQL cotidiano começa com uma forma simples:
SELECT id, email, created_at
FROM users
WHERE status = 'active'
ORDER BY created_at DESC
LIMIT 50;
Leia em camadas:
SELECTdiz quais colunas aparecem no resultado.FROMdiz a tabela de partida.WHEREremove linhas que não correspondem às condições.ORDER BYcontrola a ordem do resultado.LIMITlimita quantas linhas voltam.
Esta ordem é fácil de ler, mas bancos não necessariamente executam linha a linha. O otimizador pode escolher índices e reordenar trabalho interno. Para depuração, seu primeiro trabalho ainda é entender o significado lógico.
Cuidado com filtros
Pequenas mudanças de filtro podem alterar o comportamento drasticamente:
WHERE status = 'paid'
AND created_at >= '2026-01-01'
Isso significa que ambas as condições devem ser verdadeiras. Se usar OR, linhas podem corresponder a qualquer lado:
WHERE status = 'paid'
OR status = 'refunded'
Quando uma query está errada, isole filtros um de cada vez. Pergunte: qual condição remove a linha que eu esperava ver?
Ordenação não é garantida sem ORDER BY
Tabelas não têm uma ordem natural estável da qual código de aplicação deva depender. Se um endpoint diz "usuários mais recentes", a query deve expressar isso com ORDER BY created_at DESC. Sem isso, resultados podem parecer estáveis em desenvolvimento e mudar depois com índices, upgrades ou crescimento de dados.
Resumo
Para queries simples, depure de FROM para WHERE para ORDER BY. Confirme as linhas de origem primeiro, depois adicione filtros, depois ordenação e limites.
Use o Formatador SQL para dividir uma query de uma linha em cláusulas legíveis antes de inspecionar filtros.