Uploaded by Luã Alberto Monteiro

5 - BD - SQL ORACLE (1) (1)

advertisement
Marcelo Hely
Restrigindo e Classificando Dados
26/8/2010
1
Durante a recuperação de dados do BD, pode
ser necessário restringir as linhas de dados
exibidas ou especificar a ordem de exibição
dessas linhas.


SELECT * | { coluna/expressão
[apelido] }
FROM tabela
WHERE condição ;
A cláusula WHERE segue a cláusula FROM.
26/8/2010
2

É possível restringir linhas retornadas da
consulta utilizando a cláusula WHERE.
Uma cláusula WHERE contém uma
condição que deve ser atendida. Se a
condição for verdadeira, a linha que
atender à condição será retornada.
26/8/2010
3

WHERE - restringe a consulta às linhas que
atendem a uma condição. Ela consiste de
três elementos:
 Nome da coluna
 Condição de comparação
 Nome da coluna, constante ou lista de valores

Condição - é composta de nomes de
colunas, expressões, constantes e um
operador de comparação.
26/8/2010
4

SELECT empno, ename, job, deptno
FROM emp
WHERE deptno = 10
26/8/2010
5

SELECT ename, job, deptno
FROM emp
WHERE ename = „King‟
26/8/2010
6



As strings de caracteres e valores de data
devem aparecer entre aspas simples.
Os valores de caracteres fazem distinção
entre maiúsculas e minúsculas e os
valores de data fazem distinção entre
formatos.
O formato de data default é:
 Dia-Mês-Ano
26/8/2010
7


São utilizados em condições que comparam
uma expressão a outro valor ou expressão.
Operador






= (igual a)
> ( maior que)
>= (maior que ou igual a)
< (menor que)
<= (menor que ou igual a)
<> (diferente de), também pode ser != ou ^=
26/8/2010
8


SELECT ename, sal
FROM emp
WHERE sal <= 3000
Observe que há um valor explícito
fornecido para a cláusula WHERE. O valor
de 3000 é comparado ao valor do salário
na coluna sal da tabela emp.
26/8/2010
9

Operador
◦ BETWEEN ...AND.. (entre dois valores)
inclusive.
◦ IN (corresponde qualquer valor de uma lista)
◦ LIKE (corresponde um padrão de caractere)
◦ IS NULL (é um valor nulo)
26/8/2010
10




Use a condição BETWEEN para exibir
linhas baseadas em uma faixa de
valores.
SELECT ename, sal
FROM emp
WHERE sal BETWEEN 2500 AND 3500
A faixa que vc especificar terá um limite
inferior e outro superior.
Os valores especificados devem ser
inclusivos.
26/8/2010
11



Use a condição de associação IN para
testar valores em uma lista.
SELECT empno, ename, sal, mgr
FROM emp
WHERE mgr IN (7566, 7782, 7902)
A condição IN pode ser usada com
qualquer tipo de dados.
26/8/2010
12


SELECT empno, mgr, deptno
FROM emp
WHERE ename IN („SCOTT‟, „MILLER‟)
Se forem utilizados caracteres ou datas
na lista, eles devem estar entre aspas
simples.
26/8/2010
13


Use a condição LIKE para executar
pesquisas curingas de valores válidos de
string de pesquisa.
As condições de pesquisa podem conter
caracteres literais ou números:
 % - Representa zero ou muitos caracteres
 _ - Representa qualquer caractere.
26/8/2010
14

SELECT ename, hiredate
FROM emp
WHERE hiredate LIKE „%81‟
26/8/2010
15

SELECT ename
FROM emp
WHERE ename LIKE 'S%‟
26/8/2010
16


Pode-se utilizar para combinar
caracteres de correspondência de padrão
SELECT ename
FROM emp
WHERE ename LIKE ‟_O%‟
26/8/2010
17


Teste para valores nulos com o operador
IS NULL
SELECT ename, mgr
FROM emp
WHERE mgr IS NULL
26/8/2010
18


As condições NULL incluem a condição
IS NULL e a condição IS NOT NULL
SELECT ename, job, comm
FROM emp
WHERE comm IS NOT NULL
26/8/2010
19

Operador
◦ AND ( Retorna TRUE se ambas as
condições de componentes forem
verdadeiras).
◦ OR (Retorna TRUE se uma das condições
de componente for verdadeira).
◦ NOT (Retorna TRUE se a condição
seguinte for falsa).
26/8/2010
20


AND exige que ambas as condições
sejam verdadeiras.
SELECT empno, ename, job, sal
FROM emp
WHERE sal >=1000
AND job LIKE „%MAN%‟
26/8/2010
21


OR exige que uma das condições seja
verdadeira.
SELECT empno, ename, job, sal
FROM emp
WHERE sal >=1000
OR job LIKE „%MAN%‟
26/8/2010
22


SELECT ename, job
FROM emp
WHERE job
NOT IN („ANALYST‟, „CLERK‟);
O operador NOT também pode ser
utilizado com outros operadores SQL,
como :
BETWEEN, LIKE e NULL.
26/8/2010
23

SELECT ename, job, sal
FROM emp
WHERE job = „SALESMAN‟
OR job = „PRESIDENT‟
AND sal > 1500
26/8/2010
24

SELECT ename, job, sal
FROM emp
WHERE (job = „SALESMAN‟
OR job = „PRESIDENT‟)
AND sal > 1500
26/8/2010
25

Classifique linhas com a cláusula ORDER
BY
◦ ASC : ordem crescente (default)
◦ DESC : ordem decrescente

SELECT ename, job, deptno, hiredate
FROM emp
ORDER BY hiredate
26/8/2010
26

Ordenação de Dados default é crescente
◦ Os valores numéricos são exibidos primeiro
com os valores mais baixos.
◦ Os valores de datas são exibidos primeiro os
mais antigos.
◦ Os valores de caracteres são exibidos em
ordem alfabética
26/8/2010
27


Para reverter a ordem de exibição das
linhas, especifique a palavra-chave DESC
após o nome da coluna na cláusula
ORDER BY
SELECT ename, job, deptno, hiredate
FROM emp
ORDER BY hiredate DESC
26/8/2010
28


Pode-se utilizar um apelido de coluna na
cláusula ORDER BY
SELECT empno, ename, sal*12 “SALARIO
ANUAL”
FROM emp
ORDER BY “SALARIO ANUAL”
26/8/2010
29



Pode-se classificar os resultados da consulta
por mais de uma coluna. O limite de
classificação é nº de colunas de uma
determinada tabela.
Pode-se classificar por uma coluna que não
esteja na lista SELECT.
SELECT ename, deptno, sal
FROM emp
ORDER BY deptno, sal DESC
26/8/2010
30
Download