Buscar

Comandos de Junção em SQL

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 53 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 53 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 53 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

IMPLEMENTAÇÃO DE BANCO DE DADOS
Aula 6- Sql Parte 4
Conteúdo Programático desta aula
Aprender os comandos de junção
Conhecer as diferentes sintaxes de junção
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
Modelo de Dados
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
Configurando Oracle
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO
Um comando SELECT pode fazer uma consulta que traz dados de duas ou mais tabelas. Esse é um processo chamado de junção [join]. As tabelas têm uma coluna em comum que é usado para fazer as junções.
 Sintaxe da Junção 
Sintaxe ANSI
Sintaxe tradicional (não ANSI)
Tipos Junção:
Junção Cruzada ou Irrestrita (Produto Cartesiano)
Junção Interior
Junção Exterior
Auto-Junção
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO CRUZADA
Uma junção cruzada [cross join] de tabelas, também chamada junção irrestrita de duas tabelas gera um resultado formado por todas as combinações possíveis de uma linha da primeira tabela com uma linha da segunda. Não existe uma condição de junção. Esse resultado é chamado produto cartesiano das duas tabelas. 
Na sintaxe ANSI, junções cruzadas são indicadas com CROSS JOIN, por exemplo: 
select *
from empregado cross join departamento; 
Na sintaxe Tradicional: 
select *
from empregado , departamento;
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO CRUZADA
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO CRUZADA
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO CRUZADA
RETORNANDO TODAS AS COLUNAS DAS DUAS TABELAS E COMBINANDO TODAS AS LINHAS
SELECT * FROM EMPREGADO CROSS JOIN DEPARTAMENTO, 
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO CRUZADA
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO INTERIOR
Esse tipo de junção conecta as duas tabelas e retorna apenas as linhas que satisfazem a condição de junção. 
Na sintaxe ANSI, junções interiores são indicadas com INNER JOIN: 
select <colunas>
from tabela1 INNER JOIN tabela2 ON <condição de junção>; 
Na sintaxe Tradicional: 
select <colunas>
from tabela1 ,tabela2 
Where <condição de junção>; 
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO INTERIOR
Dados do Empregado e do Departamento onde esta alocado
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO INTERIOR – SINTAXE TRADICIONAL
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO INTERIOR – SINTAXE TRADICIONAL
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO INTERIOR – SINTAXE TRADICIONAL
SELECT * 
FROM EMPREGADO , DEPARTAMENTO
WHERE ID_DEPTO = DEPARTAMENTO.ID
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO INTERIOR – SINTAXE TRADICIONAL
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO INTERIOR – SINTAXE TRADICIONAL
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO INTERIOR – SINTAXE TRADICIONAL
Projetando Colunas
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO INTERIOR – SINTAXE ANSI
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO INTERIOR – SINTAXE ANSI
JUNÇÃO INTERIOR COM MAIS DE DUAS TABELAS
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO INTERIOR – SINTAXE ANSI
JUNÇÃO INTERIOR COM MAIS DE DUAS TABELAS
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO INTERIOR – SINTAXE TRADICIONAL
JUNÇÃO INTERIOR COM MAIS DE DUAS TABELAS
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO INTERIOR – FILTRANDO RESULTADO
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO INTERIOR – FILTRANDO RESULTADO
SINTAXE ANSI
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO INTERIOR – FILTRANDO RESULTADO
SINTAXE TRADICIONAL
REPARE AND LIGANDO 
FILTRAGEM E JUNÇÃO
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO INTERIOR – FILTRANDO RESULTADO
QUERO JUNÇÃO PARA EMPREGADOS COM SALARIO < 10000 OU ID < 3
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO INTERIOR – FILTRANDO RESULTADO
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO INTERIOR – FILTRANDO RESULTADO
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO INTERIOR – FILTRANDO RESULTADO
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO EXTERIOR
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO EXTERIOR
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO EXTERIOR - ANSI
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO EXTERIOR - ANSI
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO EXTERIOR - ANSI
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO EXTERIOR - TRADICIONAL
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO EXTERIOR - TRADICIONAL
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO EXTERIOR - ANSI
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO EXTERIOR - TRADICIONAL
NA SINTAXE TRADICIONAL DO ORACLE 
NÃO EXISTE FULL JOIN
SELECT C.ID, C.NOME, E.ID, E.ULT_NOME,E.CARGO 
FROM CLIENTE C , EMPREGADO E 
WHERE C.VENDEDOR (+) = E.ID (+)
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO EXTERIOR - TRADICIONAL
RESULTADO EQUIVALENTE AO FULL JOIN MAS O COMANDO NÃO É DE FULL JOIN
SELECT C.ID, C.NOME, E.ID, E.ULT_NOME,E.CARGO 
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.CARGO 
FROM CLIENTE C , EMPREGADO E 
WHERE C.VENDEDOR = E.ID (+)
COMANDO EQUIVALENTE À LEFT 
COMANDO EQUIVALENTE À RIGHT 
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
JUNÇÃO EXTERIOR
PROJETANDO TODAS AS COLUNAS DE CLIENTE
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
AUTO JUNÇÃO
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
AUTO JUNÇÃO
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
AUTO JUNÇÃO
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
AUTO JUNÇÃO
QUERO SABER O EMPREGADO QUE NÃO TEM GERENTE
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
AUTO JUNÇÃO
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 EMPREGADO DE ID 1 NÃO TEM GERENTE
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
AUTO JUNÇÃO
SELECTS.ID, S.ULT_NOME, S.CARGO 
FROM EMPREGADO G RIGHT JOIN EMPREGADO S 
 ON S.ID_GERENTE = G.ID
WHERE G.ID IS NULL
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
AUTO JUNÇÃO
QUERO SABER O EMPREGADO QUE NÃO TEM GERENTE,
NÃO PRECISA RESOLVER POR OUTER JOIN
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
AUTO JUNÇÃO
SELECT ID, ULT_NOME, CARGO
FROM EMPREGADO 
WHERE ID_GERENTE IS NULL
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
AUTO JUNÇÃO
QUERO SABER OS EMPREGADOS QUE NÃO SÃO GERENTES
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
AUTO JUNÇÃO
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
IMPLEMENTAÇÃO DE BANCO DE DADOS
AUTO JUNÇÃO
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
IMPLEMENTAÇÃO DE BANCO DE DADOS
AUTO JUNÇÃO
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
IMPLEMENTAÇÃO DE BANCO DE DADOS
Próxima Aula
Aprender os como construir subconsulta
Conhecer os operadores de conjunto
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS

Outros materiais