You are on page 1of 53

IMPLEMENTAO DE BANCO DE DADOS

Aula 6- Sql Parte 4


IMPLEMENTAO DE BANCO DE DADOS

Contedo Programtico desta aula


Aprender os comandos de juno
Conhecer as diferentes sintaxes de juno

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

Modelo de Dados

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

Configurando Oracle

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO
Um comando SELECT pode fazer uma consulta que traz
dados de duas ou mais tabelas. Esse um processo
chamado de juno [join]. As tabelas tm uma coluna em
comum que usado para fazer as junes.
Sintaxe da Juno
Sintaxe ANSI
Sintaxe tradicional (no ANSI)
Tipos Juno:
Juno Cruzada ou Irrestrita (Produto Cartesiano)
Juno Interior
Juno Exterior
Auto-Juno

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO CRUZADA
Uma juno cruzada [cross join] de tabelas, tambm
chamada juno irrestrita de duas tabelas gera um
resultado formado por todas as combinaes possveis de
uma linha da primeira tabela com uma linha da segunda.
No existe uma condio de juno. Esse resultado
chamado produto cartesiano das duas tabelas.
Na sintaxe ANSI, junes cruzadas so indicadas com
CROSS JOIN, por exemplo:
select *
from empregado cross join departamento;
Na sintaxe Tradicional:
select *
from empregado , departamento;

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO CRUZADA

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO CRUZADA

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO CRUZADA

SELECT * FROM EMPREGADO CROSS JOIN DEPARTAMENTO,

RNANDO TODAS AS COLUNAS DAS DUAS TABELAS E COMBINANDO TODAS AS LIN


LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO CRUZADA

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO INTERIOR
Esse tipo de juno conecta as duas tabelas e retorna
apenas as linhas que satisfazem a condio de juno.
Na sintaxe ANSI, junes interiores so indicadas com
INNER JOIN:
select <colunas>
from tabela1 INNER JOIN tabela2 ON <condio de juno>;
Na sintaxe Tradicional:
select <colunas>
from tabela1 ,tabela2
Where <condio de juno>;

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO INTERIOR

Dados do Empregado e do
Departamento onde esta alocado

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO INTERIOR SINTAXE TRADICIONAL

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO INTERIOR SINTAXE TRADICIONAL

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO INTERIOR SINTAXE TRADICIONAL

SELECT *
FROM EMPREGADO , DEPARTAMENTO
WHERE ID_DEPTO = DEPARTAMENTO.ID

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO INTERIOR SINTAXE TRADICIONAL

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO INTERIOR SINTAXE TRADICIONAL

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO INTERIOR SINTAXE TRADICIONAL

Projetando Colunas

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO INTERIOR SINTAXE ANSI

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO INTERIOR SINTAXE ANSI


JUNO INTERIOR COM MAIS DE DUAS TABELAS

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO INTERIOR SINTAXE ANSI

JUNO INTERIOR COM MAIS DE DUAS TABELAS

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO INTERIOR SINTAXE TRADICIONAL

JUNO INTERIOR COM MAIS DE DUAS TABELAS

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO INTERIOR FILTRANDO RESULTADO

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO INTERIOR FILTRANDO RESULTADO

SINTAXE ANSI

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO INTERIOR FILTRANDO RESULTADO

SINTAXE TRADICIONAL

REPARE AND LIGANDO


FILTRAGEM E JUNO

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO INTERIOR FILTRANDO RESULTADO

QUERO JUNO PARA


EMPREGADOS COM
SALARIO < 10000 OU
ID < 3

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO INTERIOR FILTRANDO RESULTADO

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO INTERIOR FILTRANDO RESULTADO

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO INTERIOR FILTRANDO RESULTADO

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO EXTERIOR

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO EXTERIOR

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO EXTERIOR - ANSI

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO EXTERIOR - ANSI

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO EXTERIOR - ANSI

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO EXTERIOR - TRADICIONAL

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO EXTERIOR - TRADICIONAL

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO EXTERIOR - ANSI

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO EXTERIOR - TRADICIONAL

SELECT C.ID, C.NOME, E.ID, E.ULT_NOME,E.CARGO


FROM CLIENTE C , EMPREGADO E
WHERE C.VENDEDOR (+) = E.ID (+)

NA SINTAXE TRADICIONAL DO ORACLE


NO EXISTE FULL JOIN

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO EXTERIOR - TRADICIONAL

RESULTADO EQUIVALENTE AO FULL


JOIN MAS O COMANDO NO DE
FULL JOIN

COMANDO EQUIVALENTE LE
SELECT C.ID, C.NOME, E.ID, E.ULT_NOME,E.CAR
FROM CLIENTE C , EMPREGADO E
WHERE C.VENDEDOR (+) = E.ID
UNION OPERADOR DE CONJUNTO
SELECT C.ID, C.NOME, E.ID, E.ULT_NOME,E.CAR
FROM CLIENTE C , EMPREGADO E
WHERE C.VENDEDOR = E.ID (+)
COMANDO EQUIVALENTE RIGHT

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

JUNO EXTERIOR

PROJETANDO TODAS AS
COLUNAS DE CLIENTE

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

AUTO JUNO

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

AUTO JUNO

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

AUTO JUNO

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

AUTO JUNO

QUERO SABER O EMPREGADO QUE NO TEM GERENTE

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

AUTO JUNO
SELECT G.ID, G.ULT_NOME, G.CARGO,
S.ID, S.ULT_NOME, S.CARGO
FROM EMPREGADO G RIGHT JOIN EMPREGADO S
ON S.ID_GERENTE = G.ID

NOTE QUE O EMPREGA


ID 1 NO TEM GERENT

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

AUTO JUNO

SELECTS.ID, S.ULT_NOME, S.CARGO


FROM EMPREGADO G RIGHT JOIN
ON S.ID_GERENTE = G.ID
WHERE G.ID IS NULL

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

AUTO JUNO

QUERO SABER O EMPREGADO QUE NO TEM GERENTE,


NO PRECISA RESOLVER POR OUTER JOIN

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

AUTO JUNO

SELECT ID, ULT_NOME, CARGO


FROM EMPREGADO
WHERE ID_GERENTE IS NULL

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

AUTO JUNO

QUERO SABER OS EMPREGADOS QUE NO SO GERENTES

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

AUTO JUNO
SELECT G.ID, G.ULT_NOME, G.CARGO,
S.ID, S.ULT_NOME, S.CARGO
FROM EMPREGADO G LEFT JOIN EMPREGADO S
ON S.ID_GERENTE = G.ID

DADOS DOS
SUBORDINADOS NULOS

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

AUTO JUNO
SELECT G.ID, G.ULT_NOME, G.CARGO
FROM EMPREGADO G LEFT JOIN EMPREGADO S
ON S.ID_GERENTE = G.ID
WHERE S.ID IS NULL

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

AUTO JUNO
SELECT G.ID, G.ULT_NOME, G.CARGO
FROM EMPREGADO G , EMPREGADO S
WHERE G.ID = S.ID_GERENTE (+) AND S.ID IS NULL

LINGUAGEM SQL
IMPLEMENTAO DE BANCO DE DADOS

Prxima Aula
Aprender os como construir
subconsulta

Conhecer os operadores de
conjunto

LINGUAGEM SQL

You might also like