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

Documentos relacionados
Ordenação de tuplos order by

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de Perryridge

Linguagem de Definição de Dados Estrutura básica Operações com conjuntos Funções de agregação Valores nulos Subconsultas embebidas Relações derivadas

Bases de Dados. Álgebra Relacional. Selecção (σ) Seleccionar os tuplos que satisfazem uma condição. exemplo: empréstimos da agência de Perryridge

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

Bases de Dados. Álgebra Relacional. Selecção (σ) Seleccionar os registos que satisfazem uma condição exemplo: empréstimos da agência de Perryridge

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

Linguagem de Definição de Dados Estrutura básica Operações com conjuntos Funções de agregação Valores nulos Subconsultas embebidas Relações derivadas

Álgebra Relacional operações adicionais. Encontrar tuplos que obedecem a uma dada relação questões do tipo: quem já leu todos os livros que eu já li?

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

Sistemas de Informação e Bases de Dados 2012/2013. Stored Procedures e Triggers

Capítulo 4: SQL! Database System Concepts! Silberschatz, Korth and Sudarshan (modificado)!

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos

As restrições de integridade garantem a consistência da BD exemplos

Bases de Dados. Conversão para Modelo Relacional. Diagrama E-A. IST DEI Bases de Dados

Bases de Dados. Revisão da matéria. Programa

Bases de Dados. Conversão para Modelo Relacional. Modelo Entidade-Associação. IST DEI Bases de Dados

Bases de Dados. Restrições de integridade. Restrições de integridade. As restrições de integridade garantem a consistência da BD exemplos

Sistemas de Informação e Bases de Dados 2012/2013. Restrições de Integridade em SQL

Bases de Dados. Optimização de planos de execução. Plano de execução

Bases de Dados. Algoritmos. Custo de operação. Algoritmos de selecção. Algoritmo de ordenação. Algoritmos de junção.

Há vários algoritmos para processar junções nested-loop join block nested-loop join indexed nested-loop join merge-join hash-join

ANÁLISE E PROJETO DE BANCO DE DADOS

Projeto de Banco de Dados

Processo de desenvolvimento. Compreender o domínio interagir com utilizadores e recolher requisitos Desenho conceptual

Restrições ao Domínio Integridade Referencial Asserções Triggers Segurança e Autorizações

Bases de Dados. Modelo Entidade-Associação. Exemplo do banco. IST DEI Bases de Dados

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

Bases de Dados. Normalização. Formas Normais. 1FN : atomicidade dos atributos. 2FN : proíbe dependência parcial de chaves

Bases de Dados. Modelo Entidade-Associação. Processo de desenvolvimento. descrição do tema. características do domínio. requisitos funcionais.

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011

Consulta sobre múltiplas relações

Bases de Dados. Modelo Entidade-Associação. Exemplo do banco. branch. account depositor. loan. borrower customer. IST DEI Bases de Dados

IMPLEMENTAÇÃO DE BANCO DE DADOS

Fundamentos de Bancos de Dados Prova 2

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

- SQL Linguagem de Manipulação de Dados

Bases de Dados. Dependências funcionais. Menos tabelas com mais dados? loan_number amount L L

Bases de Dados. Modelo Entidade-Associação. Exemplo do banco. branch. account depositor. loan. borrower customer. IST DEI Bases de Dados

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

Projeto de Banco de Dados

Restrições ao Domínio Integridade Referencial Asserções Triggers Segurança e Autorizações

Rápida revisão do Modelo Relacional

Sintaxe do comando SELECT

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

Bases de Dados 2013/2014 Álgebra Relacional. Helena Galhardas 2013 IST. Bibliografia. Raghu Ramakrishnan, Database Management Systems, Cap.

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos

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

SQL (Tópicos) Structured Query Language

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

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

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

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo

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

BCD29008 Banco de Dados

Comandos de Manipulação

Sumário SELECT + FROM

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 I. Prof. Diego Buchinger. Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo.

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

Álgebra Relacional e SQL

Banco de Dados 1 2º Semestre

Fundamentos de Bases de Dados e-fólio A Resolução e Critérios de Correcção

SQL. Agregações e agrupamentos. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

Á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:

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

Esquema Carros. automoveis (codigo, ano, fabricante, modelo, preco_tabela, pais) PK=(codigo, ano)

Bases de Dados. Apresentação da disciplina. Programa

Bases de Dados 2012/2013 Funções/procedimentos e triggers. Helena Galhardas 2012 IST. Bibliografia. Manual referência PostgreSQL

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

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

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

Bases de Dados 2005/2006. Aula 5

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

Introdução ao PostgreSQL

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

Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado

&/ $ C0$ !"#$! +!()!%+$* +,%!()%$-* -. &/$ CDE+7 F0$ 2CDE+7 F20$ 3CDE+7 F30$

Prova de Fundamentos de Bancos de Dados 2 a Prova

mod._1_teoria_sistemas de bancos de dados.doc

DML - SELECT JUNÇÕES (JOIN)

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

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. Álgebra Relacional II Junções, agregações, vistas. P. Serendero,

Sistemas de Informação e Bases de Dados 2012/2013. Índices. Alberto Sardinha

Bases de Dados. Índices. Discos. transferência rápida e aos bytes. transferência lenta e em blocos (512B ~ 4KB) memória. disco BD / aplicação

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

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

António Rocha Nuno Melo e Castro

Pesquisa básica em tabelas

Exercícios de MSSQL. Exercício Teste SELECT codigocd, Nome, DataCompra, ValorPago, LocalCompra, Album

Função dos Sistemas de Bases de Dados Visão dos dados Modelos de dados Linguagem de Definição de Dados Linguagem de Manipulação de Dados Gestão de

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

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

Bases de Dados. Restrições de integridade. Restrições de integridade. As restrições de integridade garantem a consistência da BD exemplos

Prova de Fundamentos de Bancos de Dados 2 a Prova

Transcrição:

Bases de Dados Junção de relações Junção de relações Tipicamente usadas na cláusula from SQL oferece várias possibilidades condição da junção determina quais são os atributos a comparar tipo de junção determina como é que os tuplos excedentes são tratados 2

Junção de relações inner join select * from loan inner join borrower on loan.loan_number = borrower.loan_number 3 Junção de relações left outer join e right outer join select * from loan left outer join borrower on loan.loan_number = borrower.loan_number 4

Junção de relações natural inner join select * from loan natural inner join borrower 5 Junção de relações natural outer join select * from loan natural right outer join borrower 6

Junção de relações full outer join select * from loan full outer join borrower using (loan_number) 7 Junção de relações exemplo Nomes dos clientes com conta ou empréstimo (mas não ambos) select customer_name from (depositor natural full outer join borrower) where account_number is null or loan_number is null 8

Bases de Dados Exemplos de consultas SQL Pergunta 1 Obter os dados de todos os clientes select * from customer; 10

Pergunta 2 Nomes e cidades onde residem os clientes com empréstimo select distinct b.customer_name, c.customer_city from borrower as b, customer as c where b.customer_name = c.customer_name; 11 Pergunta 3 Nomes e cidades dos clientes com empréstimo na agência de Perryridge select distinct c.customer_name, c.customer_city from customer as c, borrower as b, loan as l where c.customer_name = b.customer_name and b.loan_number = l.loan_number and l.branch_name = 'Perryridge'; 12

Pergunta 4 Números de todas as contas com saldo entre 700 e 900 select account_number from account where balance between 700 and 900; 13 Pergunta 5 Nomes dos clientes que moram em ruas cujo nome acaba em Hill select customer_name from customer where customer_street like '%Hill'; 14

Pergunta 6 Nomes dos clientes com conta e empréstimo na agência de Perryridge select distinct b.customer_name from borrower as b, loan as l where b.loan_number = l.loan_number and l.branch_name = 'Perryridge and b.customer_name in (select d.customer_name from account as a, depositor as d where a.account_number = d.account_number and a.branch_name = 'Perryridge') 15 Pergunta 7 Nomes dos clientes com contas na mesma agência onde o cliente Hayes tem conta select distinct d.customer_name from depositor as d, account as a where d.account_number = a.account_number and a.branch_name in (select a2.branch_name from depositor as d2, account as a2 where d2.account_number = a2.account_number and d2.customer_name = 'Hayes'); 16

Pergunta 8 Nomes das agências com activo superior a todas as agências da cidade de Brooklyn select branch_name from branch where assets > all (select assets from branch where branch_city = 'Brooklyn'); 17 Pergunta 9 Nomes dos clientes com empréstimo na agência de Perryridge, por ordem alfabética select distinct customer_name from borrower as b, loan as l where b.loan_number = l.loan_number and l.branch_name = 'Perryridge' order by b.customer_name; 18

Pergunta 10 Nomes das agências e número de clientes com conta nessa agência select a.branch_name, count(distinct d.customer_name) from depositor as d, account as a where d.account_number = a.account_number group by a.branch_name; 19 Pergunta 11 Nomes das agências e respectivo saldo médio, mas só as agências com saldo médio superior a 700 select branch_name, avg(balance) from account group by branch_name having avg(balance) > 700; 20

Pergunta 12 Nome da agência (ou agências) com o maior saldo médio select branch_name from account group by branch_name having avg(balance) >= all (select avg(balance) from account group by branch_name); 21 Pergunta 13 Número total de clientes do banco select count(*) from customer; 22

Pergunta 14 Saldo médio dos clientes que vivem na cidade de Harrison e têm pelo menos 2 contas no banco select avg(balance) from depositor, account, customer where depositor.customer_name = customer.customer_name and depositor.account_number = account.account_number and customer_city = 'Harrison' group by depositor.customer_name having count(distinct account.account_number) >= 2; 23 Pergunta 15 Quem são os clientes com conta em todas as agências da cidade de Brooklyn select distinct customer_name from depositor as d where not exists ( (select branch_name from branch where branch_city = 'Brooklyn') except (select branch_name from depositor as d2, account as a2 where d2.account_number = a2.account_number and d2.customer_name = d.customer_name) ); 24