Você está na página 1de 4

Usando os Operadores LIKE, IN e BETWEEN no Oracle

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

Ao montar um banco de dados, precisamos de mecanismos para que se possa extrair os dados desse banco, e a forma
de fazermos isso atravs de consultas SQL. Uma consulta SQL nada mais do que uma pergunta que fazemos ao
banco de dados. Para que a resposta seja a contento necessrio que a pergunta seja bem feita e para nos auxiliar na
hora de fazer a consulta que ns utilizamos os operadores SQL.
Como exemplo para nossas consultas vamos criar algumas tabelas, seguem os comandos abaixo.
Listagem 1: Criando a Tabela Pessoa
CREATE TABLE PESSOA
(
id_pessoa integer constraint id_pessoa_PK primary key,
nome varchar2(20),
cpf varchar2(14)
);

Figura 1: Script de criao na tabela PESSOA no programa PL/SQL Developer
Listagem 2: Inserindo dados 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,'Joo Henrique','283835424','28-08-1981');
Insert into Pessoa values(5,'Elizio 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;
Nota: O comando commit serve para efetivar a gravao dos dados na tabela do banco, enquanto o
mesmo no for executado a gravao no ser efetivada de fato.

Figura 2: Script de insero na tabela PESSOA no programa PL/SQL Developer
OPERADOR LIKE
Usa-se o operador LIKE em uma clusula WHERE para procurar uma string padro, usando o LIKE
com o Sublinhado (_) e Porcentagem (%).
Sublinhado (_) - Serve para marcar uma posio Especfica
Porcentagem (%) - Qualquer carcter a partir da posio especificada.
Listagem 3: Executando a consulta com o LIKE
Select * from Pessoa Where Nome LIKE '_u%';

Figura 3: Select na tabela Pessoa no programa PL/SQL Developer
Na consulta acima, perguntamos ao banco atravs do SQL, quais so os registros onde a segunda
letra U. O Sublinhado (_) significa a posio da primeira letra, ou seja, no precisamos saber qual
primeira letra. Voc pode mudar a posio de acordo com a sua necessidade.
Listagem 4: Selecionando todos os registros que iniciam com a letra J
Select * from Pessoa Where Nome LIKE 'J%';

Figura 4: Outro exemplo de LIKE no select na tabela Pessoa no programa PL/SQL Developer
OPERADOR IN
Esse operador usando quando se precisam recuperar as linhas onde os valores a serem
comparados esto em lista.
Listagem 5: No comando sql executando abaixo usa-se o operador IN para recuperar os registros
onde o Id_pessoa seja 2 e 3
Select * from Pessoa Where Id_Pessoa IN (2, 3, 7);

Figura 5: Select na tabela Pessoa no programa PL/SQL Developer
OPERADOR BETWEEN
Esse operador usando quando se precisa recuperar as linhas onde os valores esto em um
intervalo especificado.
Listagem 6: Recupera os registros das pessoas que nasceram entre 01 de Janeiro de 1981 e 31 de
Dezembro de 1990.
select * from Pessoa where Nascimento Between '01-01-1981' and '31-12-1990'

Figura 6: Select na tabela Pessoa usando o operador BETWEEN no programa PL/SQL Developer
Listagem 7: Recuperar os registros onde o ID_PESSOA esto entre 5 e 10
select * from Pessoa where Id_pessoa Between 5 and 10

Figura 7: Select na tabela Pessoa usando o operador BETWEEN no programa PL/SQL Developer
Leia mais em: Usando os Operadores LIKE, IN e BETWEEN no
Oracle http://www.devmedia.com.br/usando-os-operadores-like-in-e-between-no-
oracle/24687#ixzz2fvMea033