Beruflich Dokumente
Kultur Dokumente
CASE...WHEN...THENEND
Filtros em Strings - LIKE
Consultas com Mltiplas Tabelas
INNER JOIN
LEFT/RIGHT JOIN (OUTER)
FULL JOIN (OUTER)
Join com Chaves Compostas
CASE...WHEN...THENEND
2.
Para filtrar strings existe instruo prpria, uma vez que nmeros tm um valor absoluto e
textos no.
A instruo LIKE tem como diferencial o uso dos seguintes coringas:
1) % para qualquer coisa na substituio (similar ao * do DOS);
2) "_" para indicar a posio de um caractere especfico, sem indic-lo;
3) [ e ] para definir um intervalo de valores (bases no Oracle).
Exemplos:
select *
from cliente
where nome = 'anton'
select *
from cliente
where nome like '[b-e]%'
select *
from cliente
where nome like '[bmf]%'
2.
select *
from cliente
where nome like 'l[ai]%'
select *
from cliente
where nome like '%eti%'
select *
from cliente
where nome like '%eti%ass%'
select *
from cliente
where nome like 'Brun_'
3.
3.
4.
INNER JOIN
Este o utilizado com mais frequncia e sua caracterstica trazer as linhas que contenham
correspondncia nas tabelas envolvidas.
Deve-se lembrar de que a utilizao do INNER JOIN pode no trazer todos os registros da
tabela original, principalmente se nas outras tabelas relacionadas no existir linhas
correspondentes.
-- INNER JOIN (REGULAR JOIN)
SQL> select t1.id, t2.id from t1
SQL> INNER JOIN t2 ON (t1.id = t2.id)
SQL> /
ID
ID
--------- --------3
3
4
4
select f.nome, p.nome, pf.estoque
from produtoxfornecedor pf
inner join fornecedor f on pf.codfornecedor = f.codfornecedor
inner join produto p on pf.codproduto = p.codproduto
5.
5.
6.
6.
7.
Em alguns casos o relacionamento entre tabelas no feito atravs de uma nica coluna,
mas por vrias.
Neste caso podemos utilizar o JOIN com o operador AND para fazer a juno composta.
Continua valendo a utilizao do AND tambm para aplicar filtros (restries) consulta.
select d.codcurso, d.nome, d.area, t.nome, t.datainicio, t.datafim
from disciplina d
inner join turma t
on d.codcurso = t.codcurso and
d.coddisciplina = t.coddisciplina and
t.datainicio between 01-jan-2007 and 01-nov-2007