Você está na página 1de 27

2

Restringindo e
Classificando Dados

Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Objetivos

Depois
Depois de de completar
completar esta
esta lição,
lição, você
você poderá
poderá
fazer
fazer oo seguinte:
seguinte:
•• Limitar
Limitar linhas
linhas recuperadas
recuperadas por
por uma
uma
consulta
consulta
•• Classificar
Classificar linhas
linhas recuperadas
recuperadas porpor uma
uma
consulta
consulta

2-2 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Limitando Linhas Usando
uma Seleção
EMP
EMPNO ENAME JOB ... DEPTNO "…recuperar
todos os
7839 KING PRESIDENT 10 funcionários do
7698 BLAKE MANAGER 30 departamento 10"
7782 CLARK MANAGER 10
7566 JONES MANAGER 20
...

EMP
EMPNO ENAME JOB ... DEPTNO

7839 KING PRESIDENT 10


7782 CLARK MANAGER 10
7934 MILLER CLERK 10

2-3 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Limitando Linhas Selecionadas

•• Restringe
Restringe as
as linhas
linhas retornadas
retornadas usando
usando aa
cláusula
cláusula WHERE.
WHERE.

SELECT [DISTINCT] {*| coluna [apelido], ...}


FROM tabela
[WHERE condição(ões)];

•• A
A cláusula
cláusula WHERE
WHERE segue
segue aa cláusula
cláusula
FROM.
FROM.

2-4 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Usando a Cláusula WHERE

SQL> SELECT ename, job, deptno


2 FROM emp
3 WHERE job='CLERK';

ENAME JOB DEPTNO


---------- --------- ---------
JAMES CLERK 30
SMITH CLERK 20
ADAMS CLERK 20
MILLER CLERK 10

2-5 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Strings de Caractere e Datas

•• As
As strings
strings de
de caractere
caractere ee valores
valores de
de data
data
aparecem
aparecem entre
entre aspas
aspas simples.
simples.
•• Os
Os valores
valores de
de caractere
caractere fazem
fazem distinção
distinção
entre
entre maiúsculas
maiúsculas ee minúsculas
minúsculas ee osos
valores
valores de
de data
data diferenciam
diferenciam formatos.
formatos.
•• O
O formato
formato de
de data
data default
default éé DD-MON-YY.
DD-MON-YY.

SQL>
SQL> SELECT
SELECT ename,
ename, job,
job, deptno
deptno
22 FROM
FROM emp
emp
33 WHERE
WHERE ename
ename == 'JAMES' ;;

2-6 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Operadores de Comparação

Operador Significado

= Igual a

> Maior do que

>= Maior do que ou igual a

< Menor do que

<= Menor ou igual a

<> Diferente de

2-7 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Usando Operadores
de Comparação

SQL> SELECT ename, sal, comm


2 FROM emp
3 WHERE sal<=comm;

ENAME SAL COMM


---------- --------- ---------
MARTIN 1250 1400

2-8 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Outros Operadores de
Comparação

Operador Significado

BETWEEN Entre dois valores (inclusive)


...AND...

IN(list) Vincula qualquer um de uma


lista de valores

LIKE Vincula um padrão de caractere

IS NULL É um valor nulo

2-9 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Usando o Operador BETWEEN
Use
Use oo operador
operador BETWEEN
BETWEEN para
para exibir
exibir linhas
linhas
baseadas
baseadas em
em uma
uma faixa
faixa de
de valores.
valores.
SQL> SELECT ename, sal
2 FROM emp
3 WHERE sal BETWEEN 1000 AND 1500;

ENAME SAL
---------- --------- Limite Limite
MARTIN 1250 inferior superior
TURNER 1500
WARD 1250
ADAMS 1100
MILLER 1300

2-10 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Usando o Operador IN
Use
Use oo operador
operador IN
IN para
para testar
testar os
os valores
valores de
de
uma
uma lista.
lista.
SQL> SELECT empno, ename, sal, mgr
2 FROM emp
3 WHERE mgr IN (7902, 7566, 7788);

EMPNO ENAME SAL MGR


--------- ---------- --------- ---------
7902 FORD 3000 7566
7369 SMITH 800 7902
7788 SCOTT 3000 7566
7876 ADAMS 1100 7788

2-11 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Usando o Operador LIKE
•• Use
Use o o operador
operador LIKE
LIKE para
para executar
executar
pesquisas
pesquisas curinga
curinga dede valores
valores de
de string
string de
de
pesquisa
pesquisa válidos.
válidos.
•• As
As condições
condições de
de pesquisa
pesquisa podem
podem conter
conter
caracteres
caracteres literais
literais ou
ou números.
números.
–– %
% denota
denota zero
zero ou
ou muitos
muitos caracteres.
caracteres.
–– __ denota
denota um
um caractere.
caractere.
SQL> SELECT ename
2 FROM emp
3 WHERE ename LIKE 'S%';

2-12 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Usando o Operador LIKE
•• Você
Você pode
pode combinar
combinar caracteres
caracteres de
de
vinculação
vinculação de
de padrão.
padrão.
SQL> SELECT ename
2 FROM emp
3 WHERE ename LIKE '_A%';

ENAME
----------
MARTIN
JAMES
WARD

•• É
É possível
possível usar
usar oo identificador
identificador ESCAPE
ESCAPE para
para
procurar
procurar por
por "%"
"%" ouou "_".
"_".
2-13 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.
Usando o Operador IS NULL

Teste
Teste para
para valores
valores nulos
nulos com
com oo operador
operador
IS
IS NULL.
NULL.
SQL> SELECT ename, mgr
2 FROM emp
3 WHERE mgr IS NULL;

ENAME MGR
---------- ---------
KING

2-14 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Operadores Lógicos

Operador Significado

AND Retorna TRUE se as condições de


componentes forem TRUE
OR Retorna TRUE se cada condição de
componente for TRUE

NOT Retorna TRUE se a condição seguinte for


FALSE

2-15 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Usando o Operador AND

AND exige que ambas as condições


sejam TRUE.
SQL> SELECT empno, ename, job, sal
2 FROM emp
3 WHERE sal>=1100
4 AND job='CLERK';

EMPNO ENAME JOB SAL


--------- ---------- --------- ---------
7876 ADAMS CLERK 1100
7934 MILLER CLERK 1300

2-16 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Usando o Operador OR
OR
OR exige
exige que
que cada
cada condição
condição seja
seja TRUE.
TRUE.
SQL> SELECT empno, ename, job, sal
2 FROM emp
3 WHERE sal>=1100
4 OR job='CLERK';

EMPNO ENAME JOB SAL


--------- ---------- --------- ---------
7839 KING PRESIDENT 5000
7698 BLAKE MANAGER 2850
7782 CLARK MANAGER 2450
7566 JONES MANAGER 2975
7654 MARTIN SALESMAN 1250
...
7900 JAMES CLERK 950
...
14 rows selected.
2-17 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.
Usando o Operador NOT

SQL> SELECT ename, job


2 FROM emp
3 WHERE job NOT IN ('CLERK','MANAGER','ANALYST');

ENAME JOB
---------- ---------
KING PRESIDENT
MARTIN SALESMAN
ALLEN SALESMAN
TURNER SALESMAN
WARD SALESMAN

2-18 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Regras de Precedência

Ordem de Avaliação Operador


1 Todos os operadores
de comparação
2 NOT
3 AND
4 OR

Sobreponha
Sobreponha regras
regras de
de precedência
precedência usando
usando
parênteses.
parênteses.

2-19 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Regras de Precedência
SQL> SELECT ename, job, sal
2 FROM emp
3 WHERE job='SALESMAN'
4 OR job='PRESIDENT'
5 AND sal>1500;

ENAME
ENAME JOB
JOB SAL
SAL
----------
---------- ---------
--------- ---------
---------
KING
KING PRESIDENT
PRESIDENT 5000
5000
MARTIN
MARTIN SALESMAN
SALESMAN 1250
1250
ALLEN
ALLEN SALESMAN
SALESMAN 1600
1600
TURNER
TURNER SALESMAN
SALESMAN 1500
1500
WARD
WARD SALESMAN
SALESMAN 1250
1250

2-20 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Regras de Precedência
Use
Use parênteses
parênteses para
para forçar
forçar aa prioridade.
prioridade.
SQL> SELECT ename, job, sal
2 FROM emp
3 WHERE (job='SALESMAN'
4 OR job='PRESIDENT')
5 AND sal>1500;

ENAME
ENAME JOB
JOB SAL
SAL
----------
---------- ---------
--------- ---------
---------
KING
KING PRESIDENT
PRESIDENT 5000
5000
ALLEN
ALLEN SALESMAN
SALESMAN 1600
1600

2-21 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Cláusula ORDER BY
•• Classificar
Classificar as
as linhas
linhas com
com aa cláusula
cláusula ORDER
ORDER BYBY
–– ASC:
ASC: ordem
ordem crescente,
crescente, default
default
–– DESC:
DESC: ordem
ordem decrescente
decrescente
•• A
A cláusula
cláusula ORDER
ORDER BY BY vem
vem depois
depois na
na instrução
instrução
SELECT.
SELECT.
SQL> SELECT ename, job, deptno, hiredate
2 FROM emp
3 ORDER BY hiredate;

ENAME JOB DEPTNO HIREDATE


---------- --------- --------- ---------
SMITH CLERK 20 17-DEC-80
ALLEN SALESMAN 30 20-FEB-81
...
14 rows selected.

2-22 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Classificando em
Ordem Decrescente
SQL> SELECT ename, job, deptno, hiredate
2 FROM emp
3 ORDER BY hiredate DESC;

ENAME JOB DEPTNO HIREDATE


---------- --------- --------- ---------
ADAMS CLERK 20 12-JAN-83
SCOTT ANALYST 20 09-DEC-82
MILLER CLERK 10 23-JAN-82
JAMES CLERK 30 03-DEC-81
FORD ANALYST 20 03-DEC-81
KING PRESIDENT 10 17-NOV-81
MARTIN SALESMAN 30 28-SEP-81
...
14 rows selected.

2-23 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Classificando por Apelido de Coluna
SQL> SELECT empno, ename, sal*12 annsal
2 FROM emp
3 ORDER BY annsal;

EMPNO ENAME ANNSAL


--------- ---------- ---------
7369 SMITH 9600
7900 JAMES 11400
7876 ADAMS 13200
7654 MARTIN 15000
7521 WARD 15000
7934 MILLER 15600
7844 TURNER 18000
...
14 rows selected.

2-24 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Classificando por Várias Colunas
•• A
A ordem
ordem da
da lista
lista ORDER
ORDER BY
BY éé aa ordem
ordem de
de
classificação.
classificação.
SQL> SELECT ename, deptno, sal
2 FROM emp
3 ORDER BY deptno, sal DESC;

ENAME DEPTNO SAL


---------- --------- ---------
KING 10 5000
CLARK 10 2450
MILLER 10 1300
FORD 20 3000
...
14 rows selected.

•• Você
Você pode
pode classificar
classificar por
por uma
uma coluna
coluna que
que não
não
esteja
esteja na
na lista
lista SELECT.
SELECT.
2-25 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.
Sumário

SELECT [DISTINCT] {*| coluna [apelido], ...}


FROM tabela
[WHERE condição(ões)]
[ORDER BY {coluna, expr, apelido} [ASC|DESC]];

2-26 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.


Visão Geral do Exercício

• •Selecionando
Selecionandodados
dadoseealterando
alterandoaaordem
ordemdas
daslinhas
linhasexibidas
exibidas
• •Restringindo colunas utilizando a cláusula WHERE
Restringindo colunas utilizando a cláusula WHERE
• •Usando
Usandoas
asaspas
aspasnos
nosapelidos
apelidosde
decolunas
colunas

2-27 Copyright  Oracle Corporation, 1999. Todos os direitos reservados.

Você também pode gostar