Buscar

Trabalho Final de Projeto e Otimização de Bancos de dados - Pós Engenharia de Software - Estácio

Prévia do material em texto

--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 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
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.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 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
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
select d.NomeD, pre.NomeD from Disciplina d join Disciplina pre on pre.CodD = d.PreReqD
--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 = '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 CtCursos 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 d2 where d2.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 c2.DuracaoC from Curso c2 where c2.NomeC = 'Eng Elétrica')
and c.MensC > (select c2.MensC from Curso c2 where c2.NomeC = 'Eng Elétrica')
and c.NomeC <> 'Eng Elétrica'

Continue navegando