Tecnologias e Linguagens para Banco de Dados II. Pesquisando multiplas tabelas com joins

Documentos relacionados
Tecnologias e Linguagens para Banco de Dados II

Rápida revisão do Modelo Relacional

<Course name> <Lesson number>- #

Tecnologias e Linguagens para Banco de Dados II. Funções de Agregação. Usando funções de agregação Funções de agregação com valores NULL

Tecnologias e Linguagens para Banco de Dados II

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

Linguagem SQL. ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas

Aula 11 SBD SQL Parte 3. Profa. Elaine Faria UFU

Tecnologias e Linguagens para Banco de Dados II. Resumindo Dados Agrupados (...continuação) ROLLUP, CUBE e GROUPING. ROLLUP, CUBE e GROUPING COMPUTE

Banco de Dados 1 2º Semestre

- SQL Linguagem de Manipulação de Dados

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

DML - SELECT JUNÇÕES (JOIN)

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

IMPLEMENTAÇÃO DE BANCO DE DADOS

Sistemas de Bases de Dados Relacionais Introdução ao SQL. Interrogações diversas sobre a Base de Dados Northwind - Parte II

Banco de Dados II. Aula Prof. Diemesleno Souza Carvalho

Álgebra Relacional e SQL

ANÁLISE E PROJETO DE BANCO DE DADOS

Sumário SELECT + FROM

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

SQL - Perguntas. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012

Projeto de Banco de Dados

Projeto de Banco de Dados

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

SUBCONSULTAS E TIPOS DE JUNÇÃO. Banco de Dados Profa. Ana Paula Wauke

Revisão / Exercícios. Prof. Márcio Bueno. {bd2tarde,bd2noited}@marciobueno.com

Page 1. Prof. Constantino Jacob

Usando Subconsultas para Solucionar Consultas

SQL (Tópicos) Structured Query Language

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

Exercício Aula Passada. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada

Bases de Dados BDDAD. Linguagem SQL. Comando SELECT Divisão Algébrica. Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/9

Comandos de Manipulação

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

1. SQL Instrumental Select Delete Update Insert Group by Having Unnion All...

Pesquisas em Tabelas

Visão geral do curso TLBD2

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

INDEX. Serve para organizar os dados e agilizar a pesquisa/consulta dos dados armazenado nas tabelas.

MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.

Operações da Álgebra Relacional Operadores Especiais da Álgebra Relacional Renomeação

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única

Roteiro. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada

Bases de Dados. Álgebra Relacional II Junções, agregações, vistas. P. Serendero,

Principais Instruções em SQL

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Utilizando o Postgres - comandos SQL para a manipulação de dados

BANCO DE DADOS. Araújo Lima. Set / Araújo

TLBD II Instruções SQL

Álgebra Relacional e SQL operações de interesse

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL

TLBD II. Continuação

Apresentação Modelo e SQL. André Luiz Montevecchi

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 3 Tabelas de Junção e Funções de Agregação

Banco de Dados. José Antônio da Cunha CEFET RN

Consulta sobre múltiplas relações

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

Bases de Dados. Junção de relações. Junção de relações

Banco de dados. Aula 22 O Comando SELECT. 1 Wedson Quintanilha da Silva -

As Instruções DML. As Instruções de manipulação de dados(dml) em SQL são representados por: Modificam o estado do banco de dados:

Bases de Dados 2005/2006. Aula 5

SQL Server Desenvolvedor

Pesquisa básica em tabelas

Sintaxe do comando SELECT

3) Palavra-chave distinct (select-from). Obter apenas os pibs distintos entre si.

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A

BANCO DE DADOS. SQL Select. Engenharia da Computação. Aula 20. Vamos considerar a tabela EMP para os exemplos a seguir. SELECT colunas FROM tabelas;

António Rocha Nuno Melo e Castro

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

ANEXO B Manual básico de SQL

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

Roteiro 10: Consultas com várias tabelas/operadores de busca

Oracle Database 11g: Introdução à Linguagem SQL Novo

Programação em Banco de dados

Ordenação de tuplos order by

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados.

Prof. Fabiano Taguchi

Fundamentos de Bancos de Dados Prova 2

Introdução ao PostgreSQL

Texto Base Livro texto: SQL Guia Prático 2ª Edição Rogério Luís de C. Costa. Banco de Dados II Comando Select. Gustavo Dibbern Piva

Banco de Dados Oracle 10g: Introdução à Linguagem SQL

LINGUAGEM DE MANIPULAÇÃO DE DADOS CONSULTAS AVANÇADAS

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados

Oracle Database 12c: Introdução ao SQL Ed. 2

Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

IEC Banco de Dados I Aula 06 Álgebra Relacional

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

SQL UMA ABORDAGEM INTERESSANTE

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados.

Introdução a Bancos de Dados

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

PARTE I INTRODUÇÃO AO MICROSOFT SQL SERVER Capítulo 1 Visão geral do Microsoft SQL Server

1. Assinale as afirmações que são verdadeiras e as que são falsas, corrigindo-as:

TLBD II. Continuação (04)

SQL Comandos para Relatórios e Formulários. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Transcrição:

Tecnologias e Linguagens para Banco de Dados II Aula 6 4329: Relacionando dados de multiplas tabelas Pesquisando multiplas tabelas com joins Pesquisando multiplas tabelas com joins INNER JOIN OUTER JOIN CROSS JOIN (Produto Cartesiano) INNER JOIN 3 1

INNER JOIN Usa um operador de comparação para relacionar os dados de duas tabelas Pode ser definido na clausula FROM ou na clausula WHERE Porém evite relacionar tabelas através da clausula WHERE Valores NULL não podem ser comparados Sintaxe: FROM <tabela_a> [AS a] INNER JOIN <tabela_b> [AS b] ON <tabela_a>.<campo1> = <tabela_b>.<campo1> 4 Exemplo1: INNER JOIN SELECT e.employeeid, e.managerid, c.firstname + ' ' + UPPER(c.LastName) AS Name, e.title FROM HumanResources.Employee AS e INNER JOIN Person.Contact AS c ON e.contactid = c.contactid; 5 Exemplo2: INNER JOIN SELECT s.name AS StoreName, so.salesordernumber, so.orderdate, so.totaldue FROM Sales.Store AS s INNER JOIN Sales.SalesOrderHeader AS so ON s.customerid = so.customerid ORDER BY s.name, so.orderdate; 6 2

Relacionando Multiplas Tabelas SELECT p.name 'Descição do Produto', v.name AS 'Fornecedor' FROM Production.Product AS p JOIN Purchasing.ProductVendor AS pv ON p.productid = pv.productid JOIN Purchasing.Vendor AS v ON pv.vendorid = v.vendorid WHERE ProductSubcategoryID = 15; 7 OUTER JOIN Retorna todos os registros de (ao menos) uma das tabelas relacionadas LEFT OUTER JOIN Seleciona TODOS os registros da tabela a ESQUERDA e preenche com NULL os campos da tabela a direita não relacionados RIGHT OUTER JOIN Seleciona TODOS os registros da tabela a DIREITA e preenche com NULL os campos da tabela a ESQUERDA não relacionados FULL OUTER JOIN Seleciona TODOS os registros de TODAS AS TABELAS e preenche com NULL os campos das tabelas que não se relacionam 8 LEFT OUTER JOIN Sales.SalesPerson Sales.SalesTerritory Production.Product Production.ProductReview 9 3

LEFT OUTER JOIN Exemplo1 SELECT st.name AS Territory, sp.salespersonid FROM Sales.SalesPerson AS sp LEFT OUTER JOIN Sales.SalesTerritory AS st ON st.territoryid = sp.territoryid; 10 LEFT OUTER JOIN Exemplo2 SELECT p.name, pr.productreviewid FROM Production.Product AS p LEFT OUTER JOIN Production.ProductReview AS pr ON p.productid = pr.productid ORDER BY pr.productreviewid DESC; 11 RIGHT OUTER JOIN Sales.SalesTerritory Sales.SalesPerson 12 4

RIGHT OUTER JOIN Exemplo SELECT st.name AS Territory, sp.salespersonid FROM Sales.SalesTerritory AS st RIGHT OUTER JOIN Sales.SalesPerson AS sp ON st.territoryid = sp.territoryid; 13 FULL OUTER JOIN Sales.SalesTerritory Sales.SalesPerson 14 FULL OUTER JOIN Exemplo SELECT p.name, sod.salesorderid FROM Production.Product p FULL OUTER JOIN Sales.SalesOrderDetail sod ON p.productid = sod.productid; 15 5

CROSS JOIN 16 CROSS JOIN Gera registros que contém: Cada registro da tabela a esquerda combinado com Cada registro da tabela a direita Produto Cartesiano Por ser um resultado normalmente muito grande de registros retornados o SQL Server Cria um arquivo temporário em TempDB Perde performance Pode ser possível combinar campos e gerar um resultado único (Massa de dados de teste e exemplo) 17 CROSS JOIN Exemplo SELECT e.employeeid, d.name AS Department FROM HumanResources.Employee AS e CROSS JOIN HumanResources.Department AS d ORDER BY e.employeeid, d.name; 18 6

Sintaxe: declaracao_select [ALL] declaracao_select Existe um DISTINCT implícito na declaração Colunas da primeira declaração select devem ser iguais às da segunda declaração select ALL Permite retornar todas as linhas da segunda consulta, o que melhora a performance da consulta 19 Declarações select serão avaliadas da esquerda para a direita, parênteses redefinem a ordem Conversão de dados implícita garante o sucesso da consulta Regras de uso do : Mesmo número de colunas com tipos de dados compatíveis ORDER BY ou COMPUTE são clausulas aplicadas após a ultima declaração no resultado final GROUP BY e HAVING devem ser aplicados a cada declaração select 20 Exemplo1: SELECT EmployeeID AS ID FROM HumanResources.Employee SELECT DepartmentID FROM HumanResources.Department ORDER BY EmployeeID; Adicione o comando ALL ao lado de e observe o resultado Execute a primeira declaração select (comente as linhas de 6 a 8) 8 Execute a segunda declaração select (comente as linhas de 3 a 5 e altere a clausula ORDER BY para ordenar por DepartmentID) 21 7

Exemplo2: SELECT EmployeeID AS ID, Title AS Name FROM HumanResources.Employee SELECT AddressID, AddressLine1 FROM Person.Address SELECT ContactID, FirstName FROM Person.Contact SELECT ContactTypeID, Name FROM Person.ContactType SELECT ProductID, Name FROM Production.Product 22 Exemplo3: SELECT ProductID, ListPrice AS Price FROM Production.Product ALL (SELECT ProductID, UnitPrice FROM Purchasing.PurchaseOrderDetail SELECT ProductID, UnitPrice FROM Sales.SalesOrderDetail); Alterne a posição dos parênteses e do comando ALL para obter resultados diferentes. 23 8