29. LIKE e Wildcards

Escrito por Uianes Luiz Rockenbach Biondo.
Última atualização em 04 out. 2023

O operador LIKE é utilizado em conjunto com a cláusula Wildcards. Ambas instruções são utilizadas junto com o WHERE.

Quando utilizamos a seguinte sintaxe: WHERE cidade_aluno = "Santo Augusto", estamos definindo que somente os valores iguais a "Santo Augusto" serão retornados. E assim surge uma questão: E se você quiser somente as cidades que tenham a letra "s" no nome?

Para fazer essa busca específica, podemos utilizar o operador LIKE e um Wildcard.

Wildcards são representados por dois caracteres especiais: "%" e "_".

  • O símbolo "%" representa 0, 1 ou muitos caracteres textuais ou numéricos.
  • O símbolo "_" representa exatamente 1 caractere, podendo ser qualquer caractere textual ou numérico.

Esses wildcards são usados em conjunto com o operador LIKE para criar padrões de busca mais abrangentes e flexíveis em consultas SQL.

Sintaxe:

SELECT coluna1, coluna2, ...
FROM nomeTabela
WHERE coluna LIKE padrão;

Para selecionar somente cidades com "s" no nome, por exemplo:

Tabela Alunos

id_aluno nome_aluno cidade_aluno
1 Uianes Santo Augusto
2 Maria Três Passos
3 José Santo Augusto
4 Antônio Santo Augusto
5 João Tenente Portela
SELECT cidade_aluno
FROM Alunos
WHERE cidade_aluno LIKE '%s%';

Tipos de padrões:

  • WHERE cidade_aluno LIKE 's%': Vai mostrar qualquer valor que comece com "s".
  • WHERE cidade_aluno LIKE '%s': Vai mostrar qualquer valor que termine com "s".
  • WHERE cidade_aluno LIKE '%s%': Vai mostrar qualquer valor que tenha "s" em qualquer lugar.
  • WHERE cidade_aluno LIKE '_s%': Vai mostrar qualquer valor que tenha a letra "s" como segunda letra da palavra ou frase.
  • WHERE cidade_aluno LIKE 's_%': Vai mostrar qualquer valor que comece com "s" e que tenha pelo menos 2 caracteres de comprimento.
  • WHERE cidade_aluno LIKE 's__%': Vai mostrar qualquer valor que comece com "s" e que tenha pelo menos 3 caracteres de comprimento.
  • WHERE cidade_aluno LIKE 's_n_o%': Vai mostrar qualquer valor que comece com "s", tenha um caractere qualquer, seguido de "n", após um caractere qualquer e que termine com "o".
  • WHERE cidade_aluno LIKE 's%o': Vai mostrar qualquer valor que comece com "s" e termine com "o".

É possível combinar o operador LIKE com NOT.

Para demonstrar todos os valores que NÃO tenham um "s":

SELECT cidade_aluno
FROM Alunos
WHERE cidade_aluno NOT LIKE '%s%';