Usando os Operadores LIKE, IN e BETWEEN no Oracle

Aprenda nesse artigo de Oracle como usar operadores SQL LIKE e BETWEEN no Oracle.

A linguagem SQL dispõe de diversos operadores e cláusulas que nos permitem estruturar as consultas de acordo com nossa necessidade, a fim de obter o resultado esperado. Conhecer esses operadores é fundamental para que se possa construir as queries adequadamente e, comm isso, extrair do banco os dados necessários em cada situação.

Saiba mais sobre linguagem SQL

Neste artigo aprenderemos a trabalhar com os operadores LIKE IN e BETWEEN no Oracle, um dos principais sistemas gerenciadores de bancos de dados em uso atualmente.

Saiba mais sobre Oracle com o nosso Guia de Referência

Para os exemplos que veremos aqui, utilizaremos uma tabela chamada PESSOA, a qual deve conter alguns registros que nos permitam efetuar diferentes consultas. A Listagem 1 mostra o script necessário para criar essa tabela.

Listagem 1 Criando a tabela PESSOA

            CREATE TABLE PESSOA
            (
             id_pessoa integer constraint id_pessoa_PK primary key,
             nome varchar2(20),
             cpf varchar2(14),
             nascimento date
            );
        

Em seguida, precisamos incluir alguns registros, o que pode ser feito utilizando o script da Listagem 2.

Listagem 2. Inserindo dados para teste na tabela PESSOA

            INSERT INTO PESSOA VALUES (1,"Luis da Silva","11109865424","20-06-1994");
            INSERT INTO PESSOA VALUES (2,"Maria Joaquina","87604465334","20-07-1981");
            INSERT INTO PESSOA VALUES (3,"José da Silva","54279835424","08-03-1999");
            INSERT INTO PESSOA VALUES (4,"João Henrique","283835424","28-08-1981");
            INSERT INTO PESSOA VALUES (5,"Eliézio Mesquita","1087865424","28-02-1985");
            INSERT INTO PESSOA VALUES (6,"Gustavo Souza","7464465334","17-12-1995");
            INSERT INTO PESSOA VALUES (7,"Wesley Yamazack","54329835424","12-10-1997");
            INSERT INTO PESSOA VALUES (8,"Edson Arantes","90874465334","02-04-2005");
            INSERT INTO PESSOA VALUES (9,"Silvio Santos","54279835424","17-07-1955");
            INSERT INTO PESSOA VALUES (10,"Zico Galinho","654838724","15-11-2011");
            INSERT INTO PESSOA VALUES (11,"Irá Almeida","1087865424","07-09-2000");
            INSERT INTO PESSOA VALUES (12,"Lula da Silva","798465334","25-05-1974");
            INSERT INTO PESSOA VALUES (13,"Dilma Russef","12329655424","03-01-1965");
            COMMIT;
        

Saiba mais sobre operadores no Oracle

Operador Like

O operador LIKE é utilizado para buscar por uma determinada string dentro de um campo com valores textuais. Com ele podemos, por exemplo, buscar os registros cujo NOME inicia com uma determinada palavra, ou contém um certo texto.

Para efetuar esse tipo de consulta, podemos utilizar também o caractere % para indicar um "coringa", ou seja, um texto qualquer que pode aparecer no campo. Sua sintaxe padrão é a seguinte:


                SELECT colunas FROM tabela WHERE campo LIKE "valor"
            

Nessa instrução, o "valor" pode ser informado de várias formas:

Considerando nossa tabela de exemplo, se executarmos a seguinte consulta, teremos como resultado os registros que aparecem na Figura 1:


                SELECT * FROM PESSOA WHERE Nome LIKE "J%";
            
Figura 1. Utilizando o operador LIKE com percentual

Além do %, existe ainda o símbolo especial underscore ou sublinhado (_), com o qual podemos efetuar filtros mais exatos sobre as colunas textuais, buscando por um termo em uma posição específica do texto. O underscore indica a quantidade de casas/caracteres antes ou depois do texto buscado. A seguir temos alguns exemplos de uso para que possamos compreender sua sintaxe:

O seguinte script pode ser executado sobre nossa tabela para que possamos visualizar o funcionamento do underscore na prática. O resultado será o que vemos na Figura 2.


                Select * from Pessoa Where Nome LIKE "_u%";
            
Figura 2. Utilizando o operador LIKE com underscore e percentual

Operador IN

O operador IN é utilizado quando desejamos consultar uma tabela, filtrando o valor de um de seus campos a partir de uma lista e possibilidades. Enquanto o operador de comparação de igualdade (=) avalia se os dois valores são iguais, o IN permite verificar se o valor de um campo se encontra em uma lista. Sua sintaxe é a seguinte:


                    SELECT campos FROM tabela WHERE campo IN (valor1, valor2, valor3);
                

Para testarmos esse operador com a tabela que criamos, podemos executar a seguinte consulta e teremos como resultado os registros que vemos na Figura 3.


                SELECT * FROM Pessoa WHERE Id_Pessoa IN (2, 3, 7);
            
Figura 3. Utilizando o operador IN

Nesse caso, filtramos apenas os registros que possuem o Id_Pessoa igual a 2, 3, ou 7.

Operador BETWEEN

Esse operador é usado quando precisamos recuperar as linhas de uma tabela cujo valor de um campo encontra-se em um intervalo especificado. Esse tipo de consulta é muito comum quando queremos filtrar os dados por intervalos de datas, por exemplo, para retornar os registros de um determinado período. Sua sintaxe é a seguinte:


                SELECT campos FROM tabela WHERE campo BETWEEN inicio_intervalo AND fim_intervalo;
            

O seguinte script, cujo resultado é apresentado na Figura 4, retorna os registros da tabela PESSOA cuja data de nascimento esteja entre 01/01/1981 e 31/12/1990:


                SELECT * FROM Pessoa WHERE Nascimento BETWEEN "01-01-1981" AND "31-12-1990"
            
Figura 4. Utilizando o operador BETWEEN

Curso relacionado: Curso de Oracle


Links Úteis:

Artigos relacionados