<Course name> <Lesson number>- #

Documentos relacionados
Banco de dados 1. Linguagem DML SQL Select Avançado. Professor: Victor Hugo L. Lopes

BDII SQL Junção Revisão 8

Page 1. Prof. Constantino Jacob

Bases de Dados 2005/2006. Aula 5

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

Projeto de Banco de Dados

Junções e Índices em Tabelas

f. Vocês podem selecionar todos os campos indicando-os, ou seja, sem usar * (boa prática) g. Muito relevante na manutenção de BD e de aplicações.

Oracle Database 10g: Fundamentos de SQL e PL/SQL

MODELO DE DADOS VS ESQUEMA

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

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

Banco de dados Continuação das consultas em SQL... 3º trimestre Prof. Patrícia Lucas.

INNER, CROSS, LEFT, RIGHT E FULL JOINS SIMPLES ASSIM! Wellyngton Luiz Cruz Moreira wlcmoreira@hotmail.com

Tarefa Orientada 11 Junção Interna

Operações Relacionais Binárias. Junção Divisão

Prova de Fundamentos de Bancos de Dados 1 a Prova

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...

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

Memória de aula Semanas 15 e 16

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

Prova de Fundamentos de Bancos de Dados 2 a Prova

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

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

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

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

Principais Instruções em SQL

SQL DML CONSULTAS ENVOLVENDO MAIS DE UMA TABELA

Tarefa Orientada 14 Subconsultas

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL

Prova de Fundamentos de Bancos de Dados 2 a Prova

Programação SQL. INTRODUÇÃO II parte

Fortes Report Parte 1 Desenvolvendo o Primeiro Relatório

07/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

ADMINISTRAÇÃO DE BANCO DE DADOS

Prova de Fundamentos de Bancos de Dados

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

Fortes Report Parte 2 Agrupando Informações

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

TUTORIAL - Importação de dados de coleta de larvas de Aedes aegypti na Bairro de Higienópolis no município do Rio de Janeiro para o SPRING

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan

Treinamento sobre SQL

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

Comandos de Manipulação

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

1.264 Aula 7. Introdução ao SQL

Treinamento PostgreSQL - Aula 03

GBC043 - Sistemas de Banco de Dados SQL/DML no PostgreSQL. Ilmério Reis da Silva ilmerio@facom.ufu.br UFU/FACOM/BCC

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

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

Prova de Fundamentos de Bancos de Dados 2 a Prova

Tarefa Orientada 13 Agrupamento e sumário de dados

Seleção, Projeção, Produto Cartesiano e Junção

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida

Linguagem de Banco de Dados DML Exercícios

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

Aprendendo SQL. Alan Beaulieu. Novatec

Manual de instalação do Microsoft SQL Server 2008 R2 Express no Windows 10

António Rocha Nuno Melo e Castro

Figura 1. Figura 2. Prova Escrita de Base de Dados 5 Novembro V2 Número do Aluno: Nome do Aluno: 1º Teste (90 Minutos)

SQL BÁSICO. Introdução. Prof. Suelane Garcia. Linguagem SQL (Structured Query Language)

Tarefa Orientada 16 Vistas

Prova de Fundamentos de Bancos de Dados 1 a Prova

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

REITORA Ulrika Arns. VICE-REITOR Almir Barros da Silva Santos Neto. DIRETOR DO NTIC Leonardo Bidese de Pinho

Resolvendo objeto-relacional impedance mismatch com hibernate

Structured Query Language (SQL)

select nome from Médicos where codm in (select codm from Consultas where data = 06/06/13 )

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza

DML - SELECT Agrupando Dados

SQL. Banco de Dados I. Componentes de SQL

Banco de Dados. Prof. Leonardo Barreto Campos 1

Banco de Dados. Conversão para o Banco de Dados SisMoura

CIÊNCIA E TECNOLOGIA DO RIO

1. Sua primeira tarefa é determinar a estrutura da tabela DEPARTMENTS e seu conteúdo.

Laboratório 4. Base de Dados II 2008/2009

Operação de União JOIN

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01

FileMaker 14. Referência SQL

BANCO DE DADOS Parte 4

Administração de Banco de Dados. José Antônio da Cunha CEFET - RN

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

Considere as Relações Funcionários (F) e Dependentes (D), com o seguinte esquema simplificado:

Consultas SQL Parte II

Histórico de revisões

Prova de Fundamentos de Bancos de Dados 2 a Prova

Associação de dados cartográficos a alfanuméricos no MapInfo

RECUPERANDO DADOS eversantoro

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

Sobre o Visual C

Prova de Fundamentos de Bancos de Dados 1 a Prova

UTILIZAÇÃO DE RECURSOS AVANÇADOS DO EXCEL EM FINANÇAS (PARTE III): GERENCIAMENTO DE CENÁRIOS

SQL. Hélder Antero Amaral Nunes

Procedimentos armazenados

Sistemas de Produção Reativos e Algoritmo de Rete

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

Transcrição:

Obtendo Dados de Várias Tabelas EMPLOYEES DEPARTMENTS Exibindo Dados de Várias Tabelas 4-2 Produtos Cartesianos Gerando um Produto Cartesiano EMPLOYEES (20 linhas) DEPARTMENTS (8 linhas) Um produto cartesiano será formado quando: Uma condição de junção for omitida. Uma condição de junção for inválida. Todas as linhas da primeira tabela forem unidas a todas as linhas da segunda tabela. Para evitar um produto Cartesiano, sempre inclua uma condição de junção válida em uma cláusula WHERE. Produto cartesiano: 20x8=160 linhas 4-3 4-4 Unindo Tabelas EMPLOYEES O Que é uma Eqüijunção? DEPARTMENTS Usar uma junção para consultar dados de uma ou mais tabelas. SELECT FROM WHERE tabela1.coluna, tabela2.coluna tabela1, tabela2 tabela1.coluna1 = tabela2.coluna2; Crie uma condição de junção na cláusula WHERE. Coloque o nome da tabela antes do nome da coluna quando aparecer o mesmo nome de coluna em mais de uma tabela. Chave estrangeira Chave primária 4-5 4-6

Eqüijunções Qualificando Nomes de Colunas Ambíguos SELECT employees.employee_id, employees.last_name, employees.department_id, departments.department_id, departments.location_id FROM employees, departments WHERE employees.department_id = departments.department_id; Use prefixos de tabela para qualificar nomes de colunas que estão em várias tabelas. Melhore o desempenho usando prefixos de tabela. Diferencie colunas que possuem nomes idênticos, mas que residam em tabelas diferentes usando apelidos de coluna. 4-7 4-8 Usando Apelidos de Tabela Unindo Mais de Duas Tabelas EMPLOYEES DEPARTMENTS LOCATIONS Simplifique consultas usando apelidos de tabela. Melhore o desempenho usando prefixos de tabela., departments d WHERE e.department_id = d.department_id; Para unir n tabelas, é necessário um mínimo de n-1 condições de junção. Por exemplo, para unir três tabelas, é necessário um mínimo de duas junções. 4-9 4-10 Autojunções Unindo uma Tabela a ela Mesma EMPLOYEES (WORKER) EMPLOYEES (MANAGER) SELECT worker.last_name ' works for ' manager.last_name FROM employees worker, employees manager WHERE worker.manager_id = manager.employee_id ; MANAGER_ID na tabela WORKER é igual a EMPLOYEE_ID na tabela MANAGER. 4-11 4-12

Unindo Tabelas Usando a Sintaxe SQL: 1999 Criando Junções Híbridas Usar uma junção para consultar dados de uma ou mais tabelas. SELECT tabela1.coluna, tabela2.coluna FROM tabela1 [CROSS JOIN tabela2] [NATURAL JOIN tabela2] [JOIN tabela2 USING (nome_coluna)] [JOIN tabela2 ON(tabela1.nome_coluna = tabela2.nome_coluna)] [LEFT RIGHT FULL OUTER JOIN tabela2 ON (tabela1.nome_coluna = tabela2.nome_coluna)]; A cláusula CROSS JOIN cria o produto híbrido de duas tabelas. Esse processo equivale ao produto cartesiano entre as duas tabelas. SELECT last_name, department_name FROM employees CROSS JOIN departments ; 4-13 4-14 Criando Junções Naturais A cláusula NATURAL JOIN baseia-se em todas as colunas com o mesmo nome nas duas tabelas. Ela seleciona linhas das duas tabelas que têm valores iguais em todas as colunas correspondentes. Se as colunas com os mesmos nomes tiverem tipos de dados diferentes, será retornado um erro. Junções Naturais SELECT department_id, department_name, location_id, city FROM departments NATURAL JOIN locations ; 4-15 4-16 Criando Junções com a Cláusula USING Se várias colunas tiverem os mesmos nomes mas se os tipos de dados não forem correspondentes, a cláusula NATURAL JOIN poderá ser modificada com a cláusula USING para especificar as colunas que devem ser usadas em uma eqüijunção. Usar a cláusula USING para estabelecer a correspondência com apenas uma coluna quando mais de uma coluna for correspondente. Não usar um apelido ou nome de tabela nas colunas às quais foram feitas referências. As cláusulas NATURAL JOIN e USING são mutuamente excludentes. SELECT e.employee_id, e.last_name, d.location_id JOIN departments d USING (department_id) ; a Cláusula USING 4-17 4-18

Criando Junções com a Cláusula ON A condição da junção natural é basicamente uma eqüijunção de todas as colunas com o mesmo nome. Para especificar condições arbitrárias ou colunas a serem unidas, é usada a cláusula ON. A condição de junção é separada de outras condições de pesquisa. A cláusula ON facilita a compreensão do código. a Cláusula ON JOIN departments d 4-19 4-20 Criando Junções Triplas com a Cláusula ON Junções INNER Versus OUTER SELECT employee_id, city, department_name JOIN departments d ON d.department_id = e.department_id JOIN locations l ON d.location_id = l.location_id; Na sintaxe SQL: 1999, a junção de duas tabelas que retorna apenas linhas correspondentes é uma junção interna. Uma junção entre duas tabelas que retorna os resultados da junção interna assim como linhas não correspondentes em tabelas esquerdas (ou direitas) é uma junção externa esquerda (ou direita). Uma junção entre duas tabelas que retorna os resultados de uma junção interna assim como os resultados de uma junção esquerda ou direita é uma junção externa completa. 4-21 4-22 LEFT OUTER JOIN RIGHT OUTER JOIN LEFT OUTER JOIN departments d RIGHT OUTER JOIN departments d 4-23 4-24

FULL OUTER JOIN Condições Adicionais FULL OUTER JOIN departments d JOIN departments d ON (e.department_id = d.department_id) AND e.manager_id = 149 ; 4-25 4-26 Exercício Lista 3 4-27