SQL Exercícios de Revisão

Slides:



Advertisements
Apresentações semelhantes
Object Query Language - OQL
Advertisements

AULA 5 PGC Sistemas de Banco de Dados Profa. Sandra de Amo
Otimização de Consultas em SQL Estimativas de Custos
Álgebra Relacional Marcelo Mendes Manaus
SQL Avançado Continuação
SQL Structured Query Language (continuação)
Banco de Dados Bruno Rafael de Oliveira Rodrigues.
Prof. Bruno Rafael de Oliveira Rodrigues
Otimização de Consultas em SQL Parte II - Planos Alternativos -  Estimativa de Custos dos Planos de Execução AULA 19 Profa. Sandra de Amo Programa de.
SQL 3 Recursão em SQL AULA 7 PGC Sistemas de Banco de Dados
Otimização de Consultas em SQL Parte I - Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 19 Profa. Sandra de Amo Programa.
Gerência de Banco de Dados 1 Apresentação da Disciplina Profa. Sandra de Amo Bacharelado em Ciência Computação 2009 – 2.
Gerenciamento de Disco e de Buffer - Resumo
Gerenciamento de Banco de Dados
AULA 27 Profa. Sandra de Amo GBC053 – BCC
Transformando o Modelo E-R no Modelo Relacional
SQL – Consultas Aninhadas
Algoritmos para Seleção com Condições Gerais AULA 17 Profa. Sandra de Amo GBC053 – BCC
SQL – Comandos de Agregação
Exercicio – Revisão Método da Resolução e Ponto Fixo
Algoritmos para Operações de Conjuntos AULA 19 Profa. Sandra de Amo GBC053 – BCC
Exercícios para entregar 3 Consultas Recursivas em SQL Profa. Sandra de Amo PPG-CC 2012.
AULA 23 Profa. Sandra de Amo GBC053 – BCC
SQL – Consultas Aninhadas e Agregação Profa. Sandra de Amo Capitulo 5 – Livro Texto Database Management Systems Ramakrishnan - Gehrke.
SQL Exercícios de Revisão Profa. Sandra de Amo Programa de Pós-graduação em Ciência da Computação – UFU
Mais consultas recursivas... Consultas Recursivas em SQL Profa. Sandra de Amo PPG-CC 2012.
Algebra relacional nomeada e não-nomeada
Algoritmos para Projeção e Operações de Conjuntos AULA 22 Profa. Sandra de Amo GBC053 – BCC
Otimização de Consultas em SQL Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 24 Profa. Sandra de Amo GBC053 – BCC
Subconsultas ou Consultas Aninhadas
SQL – Consultas Básicas
SQL – Noções Gerais Por Márcia Jacyntha N. Rodrigues Lucena
SQL – DML Consultas envolvendo relacionamentos entre tabelas
SQL – DML Consulta a dados de uma tabela
Operadores Especiais da SQL
SCC Bancos de Dados e Suas Aplicações
Material III-Bimestre Wagner Santos C. de Jesus
Linguagem de Banco de Dados - SQL
Linguagem de Banco de Dados - SQL
Query Tuning Lílian Simão Oliveira.
Comandos de SQL Excel VBA II.
Monitoria GDI Aula Prática
Monitoria GDI Aula Prática
Geração de Planos de Execução Planos para Consultas Aninhadas
Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC
Banco de Dados II Prof. Antônio Cordeiro.
Tópicos de Sistemas de Informação A Carlos Oberdan Rolim Ciência da Computação.
LINGUAGENS DE PROGRAMAÇÃO PROF. DANIELA PIRES
Banco de Dados Aplicado ao Desenvolvimento de Software
Otimização de Consultas em SQL Planos de Execução
Algoritmos para Operação de Junção Loops Aninhados AULA 17 Profa. Sandra de Amo GBC053 – BCC.
Baseado no material do Professor Raul Paradeda
Comandos SQL.
REVISÃO Comandos SQL - DML SELECT * FROM ?.
©Prof. Lineu MialaretAula 14e - 1Banco de Dados I Banco de Dados I – BD I Prof. Lineu Mialaret Aula 14e: Exercícios em SQL (1) Instituto Federal de Educação,
AULA 20 Profa. Sandra de Amo GBC053 – BCC
Algoritmos para Operações Binárias entre blocos SQL AULA 19 – Parte I Profa. Sandra de Amo GBC053 – BCC.
Cálculo Relacional.
SQL Server Comando PIVOT.
Banco de Dados I I Comandos SQL
Structured Query Language
Equipe de monitoria Aula prática 4.  Tipos  Tabela de Objetos  Herança  Métodos  Referências  Coleções  Composição de coleções  Conectividade.
Prof. Rebecca Arambasic AGBD LPBD Pesquisa avançada UNION / INTERSECT / EXCEPT Aula 1 / 2010.
IEC Banco de Dados I Aula 04 – SQL (II) Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho
Subconsultas ou Consultas Aninhadas Forma alternativa de especificar consultas envolvendo relacionamentos entre tabelas Otimização –filtragens prévias.
UCSal – Bacharelado em Informática
SELECT Professor: Virgílio Fries Müller www. vfm.com.br
José Antônio da Cunha 2/6/2016 José Antônio - CEFET-RN 1 Disciplina: Banco de Dados.
Prática de Banco de Dados Créditos: Prof. Jefferson Silva Adaptações: Prof. Nécio de Lima Veras.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 5 Mais SQL: Consultas Complexas, Triggers e Views.
Transcrição da apresentação:

SQL Exercícios de Revisão Profa. Sandra de Amo Programa de Pós-graduação em Ciência da Computação – UFU 2012 - 2

Exercicio 1. Considere o seguinte esquema de banco de dados: Estudante(Enum, Enome, Curso, Idade, Periodo) Aula(Did, Weekday, Sala, Horário) Disciplina(Did, Dnome, Pid) Prof(Pid,Pnome,Dept) Matriculado(Enum,Did) Dê um comando SQL com um único bloco SQL para a seguinte consulta: Dar o nome dos estudantes do primeiro período que estão matriculados em alguma disciplina ministrada pela Profa. Maria Amélia

Exercicio 2. Dê um comando SQL com DOIS blocos SQL (aninhados) para a mesma consulta do Ex. 1: Dar o nome dos estudantes do primeiro período que estão matriculados em alguma disciplina ministrada pela Profa. Maria Amélia

Exercicio 3. Dê um comando SQL com TRES blocos SQL (aninhados) para a mesma consulta do Ex. 1: Dar o nome dos estudantes do primeiro período que estão matriculados em alguma disciplina ministrada pela Profa. Maria Amélia

Exercicio 4. a) Dê um comando SQL com QUATRO blocos SQL (aninhados) para a mesma consulta do Ex. 1: Dar o nome dos estudantes do primeiro período que estão matriculados em alguma disciplina ministrada pela Profa. Maria Amélia b) Para cada um dos comandos SQL dos Ex. 1, 2, 3, 4 dar o plano de execução (com operadores da álgebra relacional) correspondentes e analise a eficiência de cada comando.

Exercicio 5. Considere o esquema de banco de dados: Barcos(Bid,Bnome,Color) Reservas(Bid,Sid,Day) Sailors(Sid,Snome,Status,Idade) a) Dê um comando SQL aninhado usando dois blocos básicos ligados pelo comando EXISTS para a seguinte consulta: Encontre nome de marinheiros que reservaram o barco ‘103’ b) Dê um comando SQL aninhado usando dois blocos básicos ligados pelo comando IN para a mesma consulta do item a) c) Compare a eficiência dos dois comandos SQL dados.

Exercicio 6. a) Dê um comando SQL aninhado usando dois blocos básicos ligados pelo comando NOT EXISTS para a seguinte consulta: Encontre nome de marinheiros que não reservaram o barco ‘103’ b) Dê um comando SQL aninhado usando dois blocos básicos ligados pelo comando NOT IN para a mesma consulta do item a) c) Compare a eficiência dos dois comandos SQL dados.

Exercicio 7. a) Dê um comando SQL aninhado usando dois blocos básicos ligados pelo comando UNIQUE para a seguinte consulta, sem utilizar comandos de agregação: Encontre nome de marinheiros que reservaram uma única vez o barco ‘103’ b) Você poderia dar um comando SQL para a mesma consulta do item (a) sem utilizar o comando UNIQUE ?

Exercicio 8. a) Dê um comando SQL aninhado usando dois blocos básicos ligados pelo comando ANY para a seguinte consulta, sem utilizar comandos de agregação: Encontre os identificadores de marinheiros cujo status é melhor do que algum marinheiro chamado “Horácio” b) Você poderia dar um comando SQL para a mesma consulta do item (a) sem utilizar o comando ANY ?

Exercicio 9. a) Dê um comando SQL aninhado usando dois blocos básicos ligados pelo comando ALL para a seguinte consulta, sem utilizar comandos de agregação: Encontre os identificadores de marinheiros que têm os maiores status. b) Você poderia dar um comando SQL para a mesma consulta do item (a) sem utilizar o comando ALL ?

Exercício 10. a) Dê comando SQL para a seguinte consulta, usando dois blocos SQL aninhados, sem comandos de agregação: Quais são os nomes dos marinheiros mais jovens que reservaram o barco 103 ? b) Você poderia dar um comando SQL para a mesma consulta do item (a) usando um único bloco SQL (podendo usar agregação) ?

Exercicio 11. Considere as duas consultas abaixo. Diga quais delas são correlacionadas e por que. Diga também o que cada retorna. SELECT S.Snome FROM Sailors S WHERE EXISTS (SELECT * FROM Reservas R WHERE R.Bid = ‘103` AND R.Sid = S.Sid) SELECT S.Snome FROM Sailors WHERE S.Idade <= ALL (SELECT S2.Idade FROM S2 Sailors, R Reservas WHERE R.Sid = S2.Sid AND R.Bid = 103)

Exercicio 12. O objetivo deste exercicio é dar um comando SQL para retornar os nomes dos marinheiros que reservaram algum barco vermelhor e algum barco verde. Analise as tres propostas abaixo e diga para cada uma delas se é correta ou Incorreta justificando sua resposta. Alternativa 1: SELECT S.Snome FROM Sailors S, Reservas R, Barcos B WHERE S.Sid = R.Sid AND R.Bid = B.Bid AND B.Cor = ‘Vermelho’ AND S.Sid IN (SELECT S2.Sid FROM Sailors S2, Barcos B2, Reservas R2 WHERE S2.Sid = R2.Sid AND R2.Bid = B2.Bid AND B2.Cor = ‘Verde’) Alternativa 2: SELECT S.Snome FROM Sailors S WHERE S.Sid IN ( (SELECT R.Sid FROM Barcos B, Reservas R WHERE R.Bid = B.Bid AND B.Cor = ‘Vermelho’) INTERSECT (SELECT R.Sid B.Cor = ‘Verde’) ) Alternativa 3: FROM Sailors S, Barcos B, Reservas R WHERE S.Sid = R.Sid AND R.Bid = B.Bid AND (SELECT S.Snome B.Cor = ‘Verde’)

Exercicio 13. O objetivo deste exercicio é dar um comando SQL para retornar os nomes dos marinheiros que reservaram barcos vermelhos e não reservaram barcos verdes. Analise as tres propostas abaixo e diga para cada uma delas se é correta ou Incorreta justificando sua resposta. Alternativa 1: SELECT S.Snome FROM Sailors S, Reservas R, Barcos B WHERE S.Sid = R.Sid AND R.Bid = B.Bid AND B.Cor = ‘Vermelho’ AND S.Sid NOT IN (SELECT S2.Sid FROM Sailors S2, Barcos B2, Reservas R2 WHERE S2.Sid = R2.Sid AND R2.Bid = B2.Bid AND B2.Cor = ‘Verde’) Alternativa 2: SELECT S.Snome FROM Sailors S WHERE S.Sid IN ( (SELECT R.Sid FROM Barcos B, Reservas R WHERE R.Bid = B.Bid AND B.Cor = ‘Vermelho’) EXCEPT (SELECT R.Sid B.Cor = ‘Verde’) ) Alternativa 3: (SELECT S.Snome FROM Sailors S, Barcos B, Reservas R WHERE S.Sid = R.Sid AND R.Bid = B.Bid AND B.Cor = ‘Verde’)

Exercicio 14. O objetivo deste exercicio é dar um comando SQL para retornar os nomes dos marinheiros que reservaram barcos vermelhos ou verdes. Analise as duas propostas abaixo e diga para cada uma delas se é correta ou incorreta justificando sua resposta. Alternativa 1: SELECT S.Snome FROM Sailors S, Reservas R, Barcos B WHERE S.Sid = R.Sid AND R.Bid = B.Bid AND B.Cor = ‘Vermelho’ OR S.Sid IN (SELECT S2.Sid FROM Sailors S2, Barcos B2, Reservas R2 WHERE S2.Sid = R2.Sid AND R2.Bid = B2.Bid AND B2.Cor = ‘Verde’) Alternativa 2: SELECT S.Snome FROM Sailors S WHERE S.Sid IN ( (SELECT R.Sid FROM Barcos B, Reservas R WHERE R.Bid = B.Bid AND B.Cor = ‘Vermelho’) UNION (SELECT R.Sid B.Cor = ‘Verde’) ) Alternativa 3: (SELECT S.Snome FROM Sailors S, Barcos B, Reservas R WHERE S.Sid = R.Sid AND R.Bid = B.Bid AND B.Cor = ‘Verde’)

Exercicio 15. a) Analise a seguinte consulta SQL e diga o que ela retorna. SELECT S.SNOME FROM SAILORS S WHERE NOT EXISTS ( ( SELECT B.BID FROM BARCOS B EXCEPT (SELECT R.BID FROM RESERVAS R WHERE R.SID = S.SID) ) b) Esta consulta é correlacionada ?

Exercicio 16. a) Analise a seguinte consulta SQL e diga o que ela retorna. SELECT S.SNOME FROM SAILORS S WHERE NOT EXISTS (( SELECT B.BID FROM BARCOS B ( SELECT R.BID FROM RESERVAS R WHERE R.BID = B.BID AND R.SID = S.SID) ) b) Esta consulta é correlacionada ?

Exercício 17 Dê comando SQL para a seguinte consulta: Encontrar os nomes dos barcos que foram reservados por todos os marinheiros com idade igual a 20 anos.