Upload
alex-fernandes
View
216
Download
0
Embed Size (px)
Citation preview
8/17/2019 TRABALHO_POS_BANCO_DADOS.pdf
1/5
TRABALHO
ESPECIALIZAÇÃO EM ENGENHARIA DE SOFTWARE DISCIPLINA: PROJETO E OTIMIZAÇÃO DE BANCO DE DADOS DOCENTE: PROF RENATO CORTES DISCENTE: ALEX FERNANDES DA SILVA
8/17/2019 TRABALHO_POS_BANCO_DADOS.pdf
2/5
A) Código e nome das disciplinas com carga horária entre 3 e 5 inclusive e que não sejam daárea da saúde.
SELECT CodD, NomeD
FROM Disciplina
WHERE (CargaD BETWEEN 3 AND 5) AND (AreaD NOT IN ('Saúde'))
B) Nome das disciplinas com carga horária menor que 5 e que sejam ministradas porprofessores doutores.
SELECT DISTINCT D.NomeD
FROM Grade G
INNER JOIN Disciplina D ON D.CodD = G.CodD
INNER JOIN Professor P ON P.CodP = G.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 disciplinasnão sejam nem da área Matemática, nem de Saúde e nem de Humanas e cujo professor sejaPaulo, Joaquim e Juliana.
SELECT G.Sala
FROM Grade GINNER JOIN Disciplina D ON D.CodD = G.CodD
INNER JOIN Professor P ON P.CodP = G.CodP
WHERE (D.CargaD > 3) AND (D.AreaD NOT IN ('Matemática','Saúde','Humanas'))
8/17/2019 TRABALHO_POS_BANCO_DADOS.pdf
3/5
D) Nomes dos Professores que não ministram nenhuma matéria.
SELECT P.NomeP
FROM Professor PLEFT JOIN Grade G ON G.CodP = P.CodP
WHERE G.CodD is NULL
E) Nomes das disciplinas e o nome dos respectivos pré-requisitos.
SELECT D2.NomeD DISCIPLINA,D1.NomeD PRE_REQUISITO
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 dematemática.
SELECT D.NomeD FROM Disciplina DWHERE D.CargaD > (
SELECT MAX(D.CargaD)
FROM Disciplina D
WHERE D.AreaD = 'Matemática'
)
G) Código de cada disciplina, com a quantidade de cursos em que a mesma é oferecida.
SELECT D.CodD DOC_DISCIPLINA, COUNT(G.CodC) QUANTIDADE_CURSOS
FROM Grade G
INNER JOIN Disciplina D ON D.CodD = G.CodD
GROUP BY D.CodD
8/17/2019 TRABALHO_POS_BANCO_DADOS.pdf
4/5
H) Carga horária média das área com carga horária média maior ou igual a 3.
SELECT AVG(D.CargaD) CARGA_HORARIA_MEDIA
FROM Disciplina D
WHERE (D.AreaD != 'NULL') AND (D.CargaD >= 3)
I) Nome das disciplinas que não têm pré-requisitos e que não são pré-requisitos.
SELECT D2.NomeD DISCIPLINA
FROM Disciplina D1
RIGHT JOIN Disciplina D2 ON D2.PreReqD = D1.CodD
WHERE (D1.NomeD IS NULL)
AND (D2.NomeD NOT IN (
SELECT DISTINCT D1.NomeD DISCIPLINA
FROM Disciplina D1
INNER JOIN Disciplina D2 ON D2.PreReqD = D1.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 C.DuracaoC
8/17/2019 TRABALHO_POS_BANCO_DADOS.pdf
5/5
FROM Curso C
WHERE C.NomeC = 'Eng Elétrica'
)
)
AND (C.MensC > (
SELECT C.MensC
FROM Curso C
WHERE C.NomeC = 'Eng Elétrica'
)
)