Prévia do material em texto
UNIVERSIDADE ESTÁCIO DE SÁ VICTOR HUGO A. PINHEIRO Trabalho Final de Otimização de Banco de Dados Florianópolis – Santa Catarina 2017 Escreva as sentenças em SQL para responder as seguintes proposições: a) Código e nome das disciplinas com carga horária entre 3 e 5 inclusive e que não sejam da área de Saúde. R. SELECT CodD, NomeD FROM Disciplina WHERE CargaD BETWEEN 3 AND 5 AND AreaD != 'Saúde' b) Nome das disciplinas com carga horária menor que 5 e que sejam ministradas por professores doutores. R. SELECT DISTINCT NomeD FROM Disciplina d JOIN Grade g on g.CodD = d.CodD JOIN Professor p on p.CodP = g.CodP WHERE CargaD < 5 AND p.Titulo = ‘Doutor’ c) Salas onde haverá aulas cujos cursos possuam duração superior a 3 anos e cujas disciplinas não sejam nem da área de Matemática, nem de Saúde e nem de Humanas e cujo professor seja Paulo, Joaquim ou Juliana. R. SELECT DISTINCT Sala from Grade g JOIN Curso c on c.CodC = g.CodC JOIN Disciplina d on d.CodD = g.CodD join Professor p on p.CodP = g.CodP WHERE c.DuracaoC > 3 AND (d.AreaD IS NULL OR d.AreaD NOT IN (‘Matemática’, ‘Saúde’, ‘Humanas’)) AND p.NomeP in (‘Paulo’, ‘Joaquim’, ‘Juliana’) d) Nomes dos professores que não ministram nenhuma disciplina. R. SELECT NomeP FROM Professor p WHERE NOT EXISTS (SELECT CodP FROM Grade g WHERE g.CodP = p.CodP) e) Nomes das disciplinas e o nome dos respectivos pré- requisitos. R. SELECT d.NomeD, pr.NomeD FROM Disciplina d JOIN Disciplina pr ON pr.CodC = d.PreReqD f) Nome das disciplinas que possuam carga horária maior que todas as disciplinas da área de Matemática. R. SELECT NomeD FROM Disciplina WHERE CargaD > (SELECT MAX (CargaD) FROM Disciplina WHERE AreaD = ‘Matemática’) g) Código de cada disciplina, com a quantidade de cursos em que a mesma é oferecida. SELECT d.CodD, COUNT (distinct g.CodC) AS Ccursos FROM Disciplina d LEFT JOIN Grade g on g.CodD = d.CodD GROUP BY d.CodD h) Carga horária média das áreas com carga horária média maior ou igual a 3. SELECT AVG(CargaD) as AvgCarga FROM Disciplina GROUP BY AreaD HAVING AVG(CargaD) >= 3 i) Nome das disciplinas que não têm pré-requisito e que não são pré-requisito SELECT d.NomeD FROM Disciplina d WHERE d.PreReqD IS NULL AND NOT EXISTS (SELECT CodD FROM Disciplina disc WHERE disc.PreReqD = d.CodD) j) Nome dos cursos que têm a mesma duração do curso de Engenharia Elétrica e que têm mensalidade maior que a sua SELECT c.NomeC FROM Curso c WHERE c.DuracaoC = (SELECT cc.DuracaoC FROM Curso cc WHERE cc.NomeC = ‘Eng Elétrica’) AND c.MensC > (SELECT cc.MensC FROM Curso cc WHERE cc.NomeC = ‘Eng Elétrica) AND c.NomeC != ‘Eng Elétrica’