Você está na página 1de 5

UNIVERSIDADE ESTÁCIO DE SÁ

MBA – ENGENHARIA DE SOFTWARE


DISCIPLINA: PROJETO E OTIMIZAÇÃO DE BANCO DE DADOS
PROF.: RENATO CORTES

Trabalho

Samuel Cavalcante Fales Pereira


201506742289
Sejam as seguintes tabelas:

Curso
Professor
CodC NomeC DuracaoC MensC
CodP NomeP CidadeP TituloP
C1 Análise Sist 4 400 P1 Joaquim Rib Preto Mestre
C2 Eng Mecatrônica 5 600 P2 Paulo Batatais Espec
C3 Ciência Comp 4 450 P3 André Rib Preto Doutor
C4 Eng Elétrica 4 600 P4 Gil S Carlos Doutor
C5 Turismo 3 350 P5 Juliana S Carlos Pós Doc

Grade
CodC CodD CodP Sala
C1 D6 P1 305
C2 D2 P2 305
C3 D2 P2 305
C4 D1 P4 201
C4 D3 P3 204
C5 D4 P3 204
C5 D4 P4 207

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.CODID,D.NOMED

FROM DISCIPLINA D

WHERE D.CARGAD BETWEEN 3 AND 5

AND D.AREAD NOT IN (‘Saúde’)


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 G.CODD = D.CODD

INNER JOIN PROFESSOR P ON P.CODP = G.CODP

WHERE D.CARGAD < 5

AND P.TITULOP IN (‘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 GRADE G

INNER JOIN PROFESSOR P ON P.CODP = G.CODP

INNER JOIN CURSO C ON C.CODC = G.CODC

INNER JOIN DISCIPLINA D ON D.CODD = G.CODD

WHERE C.DURACAOC > 3

AND P.NOMEP IN (‘Paulo’,’Joaquim’,’Juliana’)

AND D.AREAD NOT IN (‘Matemática’,’Saúde’,’Humanas’)

d) Nomes dos professores que não ministram nenhuma disciplina.


SELECT P.NOMEP

FROM PROFESSOR P

INNER JOIN GRADE G ON G.CODP = P.CODP

LEFT JOIN DISCIPLINA D ON D.CODD = G.CODD

WHERE D.CODD IS NULL


e) Nomes das disciplinas e o nome dos respectivos pré-requisitos.
SELECT D.NOMED, D2.NOMED AS PRE_REQUISITO

FROM DISCIPLINA D

INNER JOIN DISCIPLINA D2 ON D.CODD = D2.PREREQD

f) Nome das disciplinas que possuam carga horária maior que todas as
disciplinas da área de Matemática.
SELECT D.NOMED FROM DISCIPLINA D WHERE D.CARGAD ALL (SELECT
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(CODC)
FROM DISCIPLINA D
INNER JOIN GRADE G ON G.CODD = D.CODD

h) Carga horária média das áreas com carga horária média maior ou igual a
3.
SELECT D.AREAD, AVG (D.CARGAD)
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 D.CODD NOT IN (SELECT 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 a sua.
SELECT C.NOMEC FROM CURSO C WHERE C.DURACAOC = (SELECT
DURACAOC FROM CURSO WHERE NOMEC = ‘Eng Elétrica’)
AND C.MENSC > ( SELECT MENSC FROM CURSO WHERE CODC = C.CODC)

Você também pode gostar