Padrões e caracteres curinga com LIKE
Use LIKE com os caracteres curinga % e _, entenda a diferenciação entre maiúsculas e minúsculas e prefira ILIKE no PostgreSQL para comparações sem distinção de maiúsculas e minúsculas.
Padrões e caracteres curinga com LIKE é uma aula grátis de SQL Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de SQL Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de SQL Academy inclui 4 aulas no total.
O que LIKE faz
LIKE compara uma string com um padrão. Há dois curingas:
%— qualquer sequência (inclusive vazia)_— exatamente um caractere
Exemplos simples
Faça correspondências por prefixo, sufixo e trecho:
SELECT email FROM users WHERE email LIKE 'a%'; -- starts with a
SELECT email FROM users WHERE email LIKE '%@gmail.com'; -- ends with @gmail.com
SELECT email FROM users WHERE email LIKE '%admin%'; -- contains adminCuringas de um único caractere
_ corresponde exatamente a um caractere. É ideal para códigos de largura fixa:
-- 6-char SKU starting with A:
SELECT * FROM products WHERE sku LIKE 'A_____';
-- US zip+4:
SELECT * FROM addresses WHERE zip LIKE '_____-____';Diferenciação entre maiúsculas e minúsculas
Por padrão, LIKE diferencia maiúsculas de minúsculas no PostgreSQL. Use ILIKE para fazer correspondências sem diferenciar maiúsculas de minúsculas:
SELECT * FROM users WHERE email LIKE '%@gmail.com'; -- ✗ misses @GMAIL.com
SELECT * FROM users WHERE email ILIKE '%@gmail.com'; -- ✓Como escapar os curingas
Para corresponder a um % ou _ literal, escape-o com uma barra invertida (ou defina seu próprio caractere ESCAPE):
-- Match strings that contain '50%':
SELECT * FROM coupons WHERE code LIKE '%50\%%';
-- Custom escape character:
SELECT * FROM coupons WHERE code LIKE '%50!%%' ESCAPE '!';LIKE e índices
Um índice B-tree ajuda apenas com padrões de prefixo:
-- Uses index (prefix is fixed):
SELECT * FROM users WHERE email LIKE 'alice%';
-- Does NOT use a normal index (leading wildcard):
SELECT * FROM users WHERE email LIKE '%example.com';Como corrigir buscas com curinga inicial
Para buscas por "%example%", use um índice GIN de trigramas (pg_trgm) — o assunto é abordado em Indexação avançada.
CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE INDEX users_email_trgm_idx ON users USING GIN (email gin_trgm_ops);
SELECT * FROM users WHERE email LIKE '%example%'; -- now indexableNOT LIKE
Negue a correspondência:
SELECT * FROM emails WHERE subject NOT LIKE 'RE:%';SIMILAR TO e expressões regulares (PostgreSQL)
Para correspondências de padrões mais avançadas:
-- SIMILAR TO — SQL regex (rarely used)
SELECT 'abc' SIMILAR TO '%(a|b)%'; -- TRUE
-- POSIX regex:
SELECT 'abc123' ~ '^[a-z]+[0-9]+$'; -- TRUE
SELECT 'ABC' ~* 'abc'; -- TRUE (case insensitive)Como criar caixas de pesquisa
Ao configurar uma caixa de pesquisa para o usuário, sanitize primeiro os curingas na entrada para evitar comportamentos inesperados:
-- Escape user input's special chars before concatenating to LIKE pattern,
-- or use to_tsquery for word-level search.
SELECT * FROM products
WHERE LOWER(name) LIKE LOWER('%' || $1 || '%');Não reinvente a pesquisa de texto completo
Para pesquisas classificadas e sensíveis ao idioma em documentos, use tsvector + GIN, não LIKE. O assunto é abordado mais adiante em Indexação avançada.
Recapitulação
LIKE é excelente para correspondências simples de padrões.
%= qualquer string,_= um caractere- Use ILIKE para não diferenciar maiúsculas de minúsculas
- Buscas por prefixo usam B-tree; trechos exigem trigramas
Verificação rápida
Qual padrão corresponde a strings que terminam em .com?
Perguntas Frequentes
A aula “Padrões e caracteres curinga com LIKE” é grátis?
Sim — o texto completo de “Padrões e caracteres curinga com LIKE” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de SQL Academy, atualize para CoddyKit PRO. O curso de SQL Academy inclui 4 aulas no total.
O que vou aprender em “Padrões e caracteres curinga com LIKE”?
Use LIKE com os caracteres curinga % e _, entenda a diferenciação entre maiúsculas e minúsculas e prefira ILIKE no PostgreSQL para comparações sem distinção de maiúsculas e minúsculas. Você pratica SQL Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar SQL Academy?
Nenhuma experiência prévia é necessária. SQL Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Padrões e caracteres curinga com LIKE”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de SQL Academy?
Sim. Cada aula de SQL Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Padrões e caracteres curinga com LIKE
- IN e NOT IN para conjuntos
- BETWEEN para intervalos
- IS NULL, IS NOT NULL e COALESCE