Dominando Buscas Complexas no PostgreSQL & Supabase
Aprenda a ir além do simples operador igual (=).
Entenda como aplicar buscas imprecisas, listas de opções, intervalos numéricos/temporais e detecção de campos ausentes no banco de dados.
Cenário de Exemplo: Tabela clientes
Base usada nos 5 passos de demonstração técnica abaixo.
| id | nome | estado | created_at | telefone | |
|---|---|---|---|---|---|
| 1 | Ana Silva | ana.silva@gmail.com | SP | 2026-02-10 | (11) 98765-4321 |
| 2 | Carlos Souza | CARLOS@outlook.com | RJ | 2026-05-15 | [NULL] |
| 3 | Mariana Costa | mari.costa@GMAIL.COM | MG | 2026-08-20 | (31) 99123-8899 |
| 4 | Lucas Pereira | lucas.p@tech.com | BA | 2025-11-01 | (71) 98822-1100 |
1. Buscas com ILIKE (Case-Insensitive)
Encontra fragmentos de texto sem se preocupar com maiúsculas ou minúsculas.
WHERE email ILIKE '%@gmail.com';
ana@gmail.com ou mari@GMAIL.COM de forma transparente.
2. Seleção de Listas com IN
Elimina múltiplos comandos OR repetitivos e simplifica a query.
WHERE estado IN ('SP', 'RJ', 'MG');
estado = 'SP' OR estado = 'RJ' OR estado = 'MG', mas muito mais limpo.
3. Intervalos com BETWEEN
Filtra faixas numéricas ou datas inclusivas (início e fim incluídos).
WHERE created_at BETWEEN '2026-01-01' AND '2026-12-31';
4. Checando Vazio com IS NOT NULL
Garante que apenas registros com dados devidamente preenchidos sejam retornados.
WHERE telefone IS NOT NULL;
= NULL. Em SQL, ausência de dado sempre se testa com IS NULL ou IS NOT NULL.
Consulta Mestra Combinada (Sintese)
Unindo múltiplos filtros avançados na mesma cláusula WHERE usando AND.
WHERE email ILIKE '%@gmail.com'
AND created_at BETWEEN '2026-01-01' AND '2026-12-31'
AND telefone IS NOT NULL;
32 Atividades Individuais
Cada aluno possui seu próprio domínio de sistema, tabela e conjunto de exercícios exclusivos.