SQL: where e operadores
O curso mostra como o SQL filtra linhas com a cláusula WHERE no PostgreSQL, junto com o código ActiveRecord que gera cada query. Começa pelos operadores de comparação e passa por AND, OR e NOT, precedência de operadores, LIKE e ILIKE, IN e BETWEEN, e o tratamento de NULL com lógica de três valores. As aulas finais tratam de timestamps e timezones no Rails, índices B-tree, sargabilidade, EXPLAIN ANALYZE e índices de expressão e parciais. Queries parametrizadas e SQL injection aparecem ao longo de todo o conteúdo.
O que você vai aprender
- ✓Filtrar linhas com WHERE e os seis operadores de comparação
- ✓Combinar condições com AND, OR e NOT, usando parênteses para a precedência
- ✓Buscar padrões com LIKE, ILIKE e queries parametrizadas seguras
- ✓Filtrar listas e faixas com IN, BETWEEN e ranges do Ruby
- ✓Testar NULL com IS NULL, IS NOT NULL e COALESCE
- ✓Escrever condições sargáveis e ler planos com EXPLAIN ANALYZE
A cláusula WHERE
Imagine uma casa noturna com mil pessoas dentro. Você não quer falar com todo mundo: quer encontrar seu amigo que está usando uma jaqueta vermelha. Ao invés de olhar cada rosto, você diz ao segurança: "Só deixe passar quem estiver de jaqueta vermelha." O segurança filtra a multidão, e só as pessoas…
Ler a aula completa grátis →Currículo
7 aulasA cláusula WHERE
Como o WHERE avalia um predicado por linha, os operadores de comparação, aspas em strings e a regra do NULL.
AND, OR e NOT
Combinar condições com AND, OR e NOT, por que AND vem antes de OR, e os equivalentes no ActiveRecord.
LIKE e correspondência de padrões
Buscar strings com LIKE, ILIKE e wildcards, evitar SQL injection e entender por que wildcards iniciais ignoram índices B-tree.
IN, BETWEEN e operadores de faixa
Usar IN com listas e subqueries, BETWEEN para faixas inclusivas, ranges do Ruby e o problema do NOT IN com NULLs.
Operadores NULL: IS NULL e IS NOT NULL
Lógica de três valores, IS NULL e IS NOT NULL, COALESCE e NULLIF, e o NULL em agregações e ordenação.
Comparação com datas e horários
Como o Rails guarda timestamps sem timezone, filtros com limite superior exclusivo e os erros de fronteira de timezone.
Performance do WHERE: índices e sargabilidade
Como índices B-tree atendem o WHERE, o que torna uma condição sargável, EXPLAIN ANALYZE e índices de expressão e parciais.