0Pricing
SQL Academy · Aula

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 admin

Curingas 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 indexable

NOT 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

  1. Padrões e caracteres curinga com LIKE
  2. IN e NOT IN para conjuntos
  3. BETWEEN para intervalos
  4. IS NULL, IS NOT NULL e COALESCE
← Voltar para SQL Academy