Baixe o app para aproveitar ainda mais
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
Compartilhar