Baixe o app para aproveitar ainda mais
Prévia do material em texto
PÓS-GRADUAÇÃO ENGENHARIA DE SOFTWARE TRABALHO DE PROJETO E OTIMIZAÇÃO DE BANCO DE DADOS Fabio Soares Venturelli 2020 2 Escopo Sejam as seguintes tabelas: 3 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 CODD, NOMED FROM DISCIPLINA WHERE CARGAD BETWEEN 3 AND 5 AND AREAD <> 'SAUDE' b) Nome das disciplinas com carga horária menor que 5 e que sejam ministradas por professores doutores. SELECT DISTINCT NOMED AS NOME_DISCIPLINA FROM DISCIPLINA D JOIN GRADE G ON G.CODD = D.CODD JOIN PROFESSOR P ON P.CODP = G.CODP WHERE CARGD < 5 AND P.TITULOP = 'DOUTOR' c) Salas onde haverá aulas cujos cursos possuem 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 NOT IN ('MATEMATICA','SAUDE','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) 4 e) Nomes das disciplinas e o nome dos respectivos pré-requisitos. SELECT D.NOMED AS DISCIPLINA, D.PRENOMED AS PRE_REQUISITO FROM DISCIPLINA D f) Nome das disciplinas que possuam carga horária maior que todas as disciplinas da área de Matemática. SELECT D.NOMED AS DISCIPLINA FROM DISCIPLINA D WHERE D.CARGAD > (SELECT MAX(D.CARGAD) FROM DISCIPLINA D WHERE D.AREAD = 'MATEMATICA') g) Código de cada disciplina, com a quantidade de cursos em que a mesma é oferecida. SELECT D.CODD, COUNT (DISTINCT G.CODC) AS QT_CURSOS 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(D.CARGAD) AS CARGA_HORARIA FROM DISCIPLINA D GROUP BY D.AREAD HAVING AVG(D.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 D2.CODD FROM DISCIPLINA D2 WHERE D2.PREREQ = D.CODD) 5 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'
Compartilhar