Picture of Roberto Sobrinho
Roberto Sobrinho

05/12/2024

Operador LIKE no Oracle: exemplos práticos

Olá DBA! Hoje vou mostrar todas as variações do operador LIKE. Ele ajuda muito no dia a dia para localizar registros com padrões específicos. Para os exemplos, usei a tabela EMP com os dados abaixo:

SQL> select * from emp;

     EMPNO ENAME      JOB              MGR HIREDATE             SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------- ---------- ---------- ----------
      8000 ESCAPE_TST SALES_MAN            05-DEC-2024         2000                    40
      7369 SMITH      CLERK           7902 17-DEC-1980          800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-1981         1600        300         30
      7521 WARD       SALESMAN        7698 22-FEB-1981         1250        500         30
      7566 JONES      MANAGER         7839 02-APR-1981         2975                    20
      7654 MARTIN     SALESMAN        7698 28-SEP-1981         1250       1400         30
      7698 BLAKE      MANAGER         7839 01-MAY-1981         2850                    30
      7782 CLARK      MANAGER         7839 09-JUN-1981         2450                    10
      7788 SCOTT      ANALYST         7566 09-DEC-1982         3000                    20
      7839 KING       PRESIDENT            17-NOV-1981         5000                    10
      7844 TURNER     SALESMAN        7698 08-SEP-1981         1500          0         30
      7876 ADAMS      CLERK           7788 12-JAN-1983         1100                    20
      7900 JAMES      CLERK           7698 03-DEC-1981          950                    30
      7902 FORD       ANALYST         7566 03-DEC-1981         3000                    20
      7934 MILLER     CLERK           7782 23-JAN-1982         1300                    10

15 rows selected.

SQL>

1. Usar % (Qualquer sequência de caracteres)

Localizar cargos (JOB) que começam com “S”:

SQL>
    SELECT ENAME, JOB
      FROM EMP
     WHERE JOB LIKE 'S%';

ENAME      JOB
---------- ---------
ESCAPE_TST SALES_MAN
ALLEN      SALESMAN
WARD       SALESMAN
MARTIN     SALESMAN
TURNER     SALESMAN

5 rows selected.

SQL>

2. Usar _ (Um único caractere)

Buscar cargos com exatamente 7 caracteres:

SQL>
    SELECT ENAME, JOB
      FROM EMP
     WHERE JOB LIKE '_______';

ENAME      JOB
---------- ---------
JONES      MANAGER
BLAKE      MANAGER
CLARK      MANAGER
SCOTT      ANALYST
FORD       ANALYST

5 rows selected.

SQL>

3. Combinar padrões com % e _

Localizar cargos que comecem com “S”, tenham pelo menos dois caracteres após o “S” e contenham “A” em qualquer posição posterior:

SQL>
    SELECT ENAME, JOB
      FROM EMP
     WHERE JOB LIKE 'S%__A%';

ENAME      JOB
---------- ---------
ESCAPE_TST SALES_MAN
ALLEN      SALESMAN
WARD       SALESMAN
MARTIN     SALESMAN
TURNER     SALESMAN

5 rows selected.

SQL>

4. Escapar caracteres reservados (ESCAPE)

Buscar nomes (ENAME) que contêm “E_T”:

SQL>
    SELECT ENAME, JOB
      FROM EMP
      WHERE ENAME LIKE '%E\_T%' ESCAPE '\';  

ENAME      JOB
---------- ---------
ESCAPE_TST SALES_MAN

1 row selected.

SQL>

5. Combinar múltiplas condições com OR

Buscar funcionários cujo nome começa com “S” ou cargo começa com “M”:

SQL>
     SELECT ENAME, JOB
       FROM EMP
      WHERE ENAME LIKE 'S%' OR JOB LIKE 'M%';

ENAME      JOB
---------- ---------
SMITH      CLERK
JONES      MANAGER
BLAKE      MANAGER
CLARK      MANAGER
SCOTT      ANALYST

5 rows selected.

SQL>

6. Combinar múltiplas condições com AND

Localizar funcionários nome começa com “A” e cargo termina com “MAN”:

SQL>
    SELECT ENAME, JOB
      FROM EMP
     WHERE ENAME LIKE 'A%' AND JOB LIKE '%MAN';

ENAME      JOB
---------- ---------
ALLEN      SALESMAN

1 row selected.

SQL>

7. Usar NOT LIKE para exclusões

Localizar funcionários cujo nome não começa com “S” e o cargo não termina com “MAN”:

SQL>
    SELECT ENAME, JOB
      FROM EMP
     WHERE ENAME NOT LIKE 'S%'
      AND JOB NOT LIKE '%MAN';

ENAME      JOB
---------- ---------
JONES      MANAGER
BLAKE      MANAGER
CLARK      MANAGER
KING       PRESIDENT
ADAMS      CLERK
JAMES      CLERK
FORD       ANALYST
MILLER     CLERK

8 rows selected.

SQL>

Resumo LIKE

Curinga/ConceitoDescriçãoExemploResultado
%Qualquer sequência de caracteres.JOB LIKE 'S%'Localiza cargos que começam com “S”.
_Um único caractere.JOB LIKE '_______'Localiza cargos com exatamente 7 caracteres.
Combinação % e _Combina diferentes padrões.JOB LIKE 'S%__A%'Localiza cargos começando com “S” e contendo “A” depois.
ESCAPETrata caracteres reservados como texto.ENAME LIKE '%E\_T%' ESCAPE '\'Localiza nomes que contêm “E_T”.
ORCombina condições alternativas.ENAME LIKE 'S%' OR JOB LIKE 'M%'Localiza nomes que começam com “S” ou cargos com “M”.
ANDCombina condições simultaneamente.ENAME LIKE 'A%' AND JOB LIKE '%MAN'Localiza nomes que começam com “A” e cargos terminando com “MAN”.
NOT LIKEExclui valores que atendem ao padrão.ENAME NOT LIKE 'S%' AND JOB NOT LIKE '%MAN'Exclui nomes que começam com “S” e cargos terminando com “MAN”.

Operador LIKE Oracle Documentation


🫨🤑#20241205 #DBASobrinho #GuinaNãoTinhaDó #BóBó #CaceteDeAgulha #OracleACE  #CaiuA8EuMatoAPar #CriançaReclamaAdultoResolve #TocouACampainhaPlin🫨🤑


Compartilhe

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print

Pesquisar

Roberto Sobrinho

Sou Roberto Fernandes Sobrinho, também conhecido como Sobrinho DBA , pós graduado em “Architecture and Database Administration”, entusiasta, dedicado e com 20 anos de experiência com Oracle Database e suas diversas distribuições e variações.

Oracle ACE Associate

2025

Specialist

Exadata Database Machine X9M

Professional

Oracle Database Administration

Professional

Oracle Database 19c: RAC, ASM, & Grid Infra Administrator

Professional

Oracle Autonomous Database Cloud

Professional

Oracle Cloud Database Migration and Integration

Professional

Oracle Database PL/SQL Developer

Associate

Oracle Cloud Infrastructure Architect

Associate

Oracle Cloud Infrastructure Foundations

Categorias

Categorias

Tags

Operador LIKE no Oracle: exemplos práticos