Buscar

ACFrOgD erU1RWuqgsIfYptFXZf2STLPuAQxidnv3hXPxWOdKi3KTS7FI4Fk6e0NdjlcqKAFL n7KChptqxpC 917MACnGZiRf1iGygjz0jpV7r0DTlyLLnE8qoMfdg=

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 40 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 40 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 40 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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Banco de dados II
Prof. Odair Moreira de Souza
Unidade 02
Encontro 02
Recapitulando
•Manipulação de Tabelas
•Funções de Agregação
•Modificar dados em Tabelas
•Seleção de intervalos em consultas
•Padrões de caracteres em consultas e Expressões Regulares
•Valores padrão em colunas
•Agrupamento de Registros
•Filtrando os resultados do Agrupamento
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 2
Conteúdo
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 3
Union
Union
•O comando UNION elimina automaticamente as duplicatas, ao 
contrário da cláusula select.
•UNION : União de selects que exclui os duplicados
•UNION ALL: União que mantem os duplicados
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 5
Union
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 6
Intersect
Intersect
•Para encontrar todos os clientes que possuem um empréstimo e uma 
conta no banco:
(select distinct nomeCliente
from depositante)
INTERSECT
(select distinct nomeCliente
from creditado) 
(select distinct nomeCliente
from depositante)
INTERSECT ALL
(select distinct nomeCliente
from creditado) 
Intersect
•Para encontrar todos os clientes que possuem um empréstimo e uma 
conta no banco:
(select distinct nomeCliente
from depositante)
INTERSECT
(select distinct nomeCliente
from creditado) 
(select distinct nomeCliente
from depositante)
INTERSECT ALL
(select distinct nomeCliente
from creditado) 
Except
Except
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 11
(select distinct 
nomeCliente
from depositante)
EXCEPT 
(select distinct 
nomeCliente
from creditado) 
(select distinct 
nomeCliente
from depositante)
EXCEPT ALL
(select distinct 
nomeCliente
from creditado) 
Except
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 12
(select distinct 
nomeCliente
from depositante)
EXCEPT 
(select distinct 
nomeCliente
from creditado) 
(select distinct 
nomeCliente
from depositante)
EXCEPT ALL
(select distinct 
nomeCliente
from creditado) 
Projeto db_Biblioteca
Projeto db_Biblioteca
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 14
Arquivos:CREATE_db_Biblioteca.sql
INSERT_INTO_db_Biblioteca.sql
Consultar dados em duas ou mais Tabelas
Consultar dados em várias Tabelas
•O mecanismo JOIN é utilizada para consultas de dados em várias tabelas, 
porém os dados devem estar relacionados.
•Tipos de JOIN's:
•INNER JOIN:
• Retorna registros quando houver pelo menos uma correspondência em ambas as tabelas;
•OUTER JOIN:
• Retornar registros mesmo quando não tiver pelo menos uma correspondência em uma tabela; divide-
se em LEFT JOIN, RIGHT JOIN e FULL JOIN;
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 16
Mundo dos JOIN's
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 17
INNER JOIN
INNER JOIN
•A sintaxe básica de um INNER JOIN em uma consulta é:
SELECT colunas 
FROM tabela1 
INNER JOIN tabela2 
ON tabela1.coluna=tabela2.coluna;
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 19
INNER JOIN
• Consultar as tabelas de livros e autores (tbl_livro e tbl_autores) e retornar os dados 
relativos aos livros e aos autores ao mesmo tempo.
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 20
INNER JOIN
• Consultar nas tabelas 
de livros e autores, 
porém retornando 
apenas os nomes dos 
livros, seus ISBNs e 
os nomes dos autores 
desses livros. 
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 21
INNER JOIN
Consultar nas tabelas de livros e autores, porém retornando apenas os nomes dos 
livros, seus ISBNs e os nomes dos autores desses livros. 
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 22
INNER JOIN
•Retornar os nomes 
dos livros e nomes 
das editoras, mas 
somente das 
editoras cujo nome 
se inicia com a 
letra M;
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 23
INNER JOIN
•Retornar os nomes dos livros e nomes das editoras, mas somente das 
editoras cujo nome se inicia com a letra M;
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 24
INNER JOIN
•Consultar os nomes 
dos livros, nomes dos 
autores e das editoras:
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 25
INNER JOIN
•Consultar os nomes dos livros, nomes dos autores e das editoras:
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 26
OUTER JOINS
OUTER JOINS
•LEFT JOIN: 
• Retorna todas as linhas da tabela à esquerda, mesmo se não houver nenhuma 
correspondência na tabela à direita.
•RIGHT JOIN: 
• Retorna todas as linhas da tabela à direita, mesmo se não houver nenhuma 
correspondência na tabela à esquerda.
•FULL JOIN: 
• Retorna linhas quando houver uma correspondência em qualquer uma das tabelas. 
É uma combinação de LEFT e RIGHT JOINS.
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 28
LEFT JOIN
•SELECT colunas 
•FROM tabela_esq 
•LEFT (OUTER) JOIN tabela_dir 
•ON tabela_esq.coluna=tabela_dir.coluna;
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 29
LEFT JOIN
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 30
LEFT JOIN excluindo correspondências:•SELECT coluna
•FROM tabela_esq
•LEFT (OUTER) JOIN tabela_dir
•ON tabela_esq.coluna=tabela_dir.coluna
•WHERE tabela_dir.coluna IS NULL;
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 31
LEFT JOIN excluindo correspondências:
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 32
RIGHT JOIN
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 33
•SELECT colunas 
•FROM tabela_esq 
•RIGHT (OUTER) JOIN tabela_dir 
•ON tabela_esq.coluna=tabela_dir.coluna;
RIGHT JOIN
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 34
RIGHT JOIN excluindo correspondências
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 35
SELECT coluna
FROM tabela_esq
RIGHT (OUTER) JOIN tabela_dir
ON tabela_esq.coluna=tabela_dir.coluna
WHERE tabela_esq.coluna IS NULL;
RIGHT JOIN excluindo correspondências
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 36
FULL JOIN
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 37
SELECT colunas 
FROM tabela1 FULL (OUTER) 
JOIN tabela2 
ON tabela1.coluna=tabela2.coluna;
FULL JOIN excluindo correspondências:
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 38
SELECT colunas
FROM tabela1
FULL (OUTER) JOIN tabela2
ON tabela1.coluna=tabela2.coluna
WHERE tabela1.coluna IS NULL
OR tabela2.coluna IS NULL;
CROSS JOIN
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 39
• Um CROSS JOIN retorna um produto cartesiano entre 
as tabelas, mostrando todas as combinações possíveis 
entre os registros.
• SELECT colunas 
• FROM tabela1
• CROSS JOIN tabela2;
CROSS JOIN
15-Sep-17 Banco de Dados II - Prof. Odair Moreira de Souza 40

Outros materiais