No Oracle e em outros bancos de dados relacionais, a correspondência de padrões é um recurso popular que permite pesquisar padrões de cadeia de caracteres usando sintaxes especiais. Por exemplo, você pode pesquisar uma substring dentro de um grande conjunto de strings usando operadores e funções de correspondência de padrões.
Isso o torna muito útil para construir cláusulas de pesquisa simples sem incorrer em penalidades significativas de desempenho no banco de dados.
Neste tutorial, você encontrará o operador LIKE no Oracle para executar consultas de correspondência de padrão.
Operador LIKE do Oracle
O operador LIKE no Oracle permite pesquisar um padrão específico em uma determinada coluna. Por exemplo, você pode usá-lo para localizar todas as linhas onde o primeiro nome de um cliente começa com o padrão 'Ja'.
Muitas vezes, você encontrará esse operador usado em conjunto com outras cláusulas SQL, como a cláusula WHERE, para filtrar nossos resultados com base em um padrão específico.
Podemos expressar a sintaxe do operador LIKE em SQL como mostrado abaixo:
expressão LIKE padrão [ FUGA 'escape_character' ]- O parâmetro expression especifica a coluna que você deseja pesquisar.
- O parâmetro padrão define o padrão específico que você deseja pesquisar. O padrão especificado pode conter caracteres curinga como % e _ para corresponder a qualquer número de caracteres ou a um único caractere, respectivamente.
- Também podemos incluir a cláusula ESCAPE para especificar um caractere de escape usado para pesquisar os caracteres curinga reais.
Exemplos do Operador LIKE do Oracle
Os exemplos a seguir demonstram como usar o operador LIKE em uma tabela Oracle.
Suponhamos que tenhamos uma tabela contendo as informações do cliente conforme abaixo:
Exemplo 1 – Usando % de caracteres curinga
Podemos usar os caracteres curinga % para corresponder a qualquer sequência de zero ou mais caracteres. Por exemplo, podemos encontrar todas as entradas em uma tabela contendo o Nome ‘Will%’.
Pegue a tabela dos funcionários abaixo:
selecionar first_name, last_name, saláriode EMPREGADOS
onde FIRST_NAME gosta 'Vontade%'
ordenar por first_name;
A consulta anterior seleciona as colunas first_name, last_name e salary da tabela Employees e ordena os valores resultantes pela coluna first_name.
Também combinamos uma cláusula where em conjunto com um operador LIKE com os caracteres curinga % para buscar apenas as linhas onde o primeiro nome começa com ‘Will’.
Isso deve retornar as linhas como:
Também podemos usar o caractere curinga % para buscar as linhas que terminam em um padrão específico.
Um exemplo é mostrado abaixo:
selecionar first_name, last_name, saláriode EMPREGADOS
onde FIRST_NAME gostou '%é'
ordenar por first_name;
Neste caso, a consulta anterior deve retornar todas as linhas onde o primeiro nome termina em ‘er’. Um exemplo de valor resultante é mostrado abaixo:
O operador LIKE do banco de dados Oracle diferencia maiúsculas de minúsculas por padrão, portanto, é essencial ter isso em mente ao pesquisar padrões específicos. Você pode usar outras funções, como inferior e superior, para negar esse comportamento.
Exemplo 2 – Usando a Cláusula de Escape
O exemplo a seguir demonstra como usar a cláusula ESCAPE no operador LIKE do Oracle:
selecionar first_name, last_name, salário, comissão_pctde EMPREGADOS
onde comissão_pct gosta 'vinte\%' fuga '\' ;
A consulta anterior seleciona as colunas primeiro_nome, último nome, salário e comissão_pct da tabela EMPLOYEES. A cláusula WHERE usa o operador LIKE com a cláusula ESCAPE para buscar os registros onde a coluna commission_pct contém a string ‘20%’ (com um caractere % literal, não um curinga).
Nesse caso, escapamos do caractere % com uma barra invertida (\) ao pesquisar a string 20%. Isso permite que o operador LIKE procure a string exata ‘20%’ em vez de tratar o caractere % como um curinga.
Esta consulta retornaria todas as linhas da tabela EMPLOYEES onde a coluna Commission_pct contém a string exata ‘20%’, juntamente com as colunas first_name, last_name e salary para essas linhas.
Conclusão
Nesta postagem, você aprendeu a usar o operador LIKE em bancos de dados Oracle para pesquisar padrões específicos em uma tabela. Vários exemplos são fornecidos para destacar usando caracteres curinga e a cláusula ESCAPE.