29. LIKE e Wildcards
Ú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%';