Baixe o app para aproveitar ainda mais
Prévia do material em texto
Projeto e Otimização de Banco de dados Professor - Renato Cortes Aluno - Renato R. de Lima Junior - 201801254702 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. SELECT D.CodD, d.NomeD from disciplina D where D.CargaD BETWEEN 3 AND 5 AND D.AreaD <> 'Saude' b) Nome das disciplinas com carga horária menor que 5 e que sejam ministradas por professores doutores. SELECT d.NomeD FROM disciplina D INNER JOIN grade G ON D.CodD = G.CodD INNER JOIN professor P ON G.CodP = P.CodP WHERE D.CargaD < 5 AND P.TituloP = '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. SELECT G.sala FROM disciplina D INNER JOIN grade G ON D.CodD = G.CodD INNER JOIN professor P ON G.CodP = P.CodP INNER JOIN curso C on G.codC = C.codC WHERE 1 = 1 AND C.duracaoC > 3 AND P.NomeP in ('Paulo', 'Joaquim', 'Juliana') AND D.AreaD not in ('Matematica', 'Saúde', 'Humanas') d) Nomes dos professores que não ministram nenhuma disciplina. SELECT P.NomeP FROM professor P WHERE P.CodP NOT IN (SELECT CODP FROM grade) e) Nomes das disciplinas e o nome dos respectivos pré-requisitos. SELECT D1.CodD, D1.NomeD as 'PreReqD', D2.CodD, D2.NomeD as 'Disc' FROM disciplina D1 INNER JOIN disciplina D2 ON D2.PreReqD = D1.CodD f) Nome das disciplinas que possuam carga horária maior que todas as disciplinas da área de Matemática. select NomeD from disciplina where CargaD > (select MAX(CargaD) from disciplina where AreaD = 'Matematica') g) Código de cada disciplina, com a quantidade de cursos em que a mesma é oferecida. select D.CodD, COUNT(C.CodC) as total from curso C inner join grade G on C.CodC = G.CodC inner join disciplina D 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 AreaD, AVG(CargaD) FROM disciplina D 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 PreReqD IS NULL AND D.CodD NOT IN (SELECT DISTINCT(PreReqD) FROM disciplina WHERE PreReqD IS NOT NULL) j) Nome dos cursos que têm a mesma duração do curso de Engenharia Elétrica e que têm mensalidade maior que o referido curso. SELECT C.NomeC FROM curso C WHERE DuracaoC = ( SELECT DuracaoC FROM curso C WHERE C.CodC = 'C4' ) AND C.MensC > ( SELECT MensC FROM curso C WHERE C.CodC = 'C4' )
Compartilhar