Essays.club - TCC, Modelos de monografias, Trabalhos de universidades, Ensaios, Bibliografias
Pesquisar

Projeto e otimização banco de dados

Por:   •  30/11/2018  •  609 Palavras (3 Páginas)  •  390 Visualizações

Página 1 de 3

...

('C4','D3','P3',204),

('C5','D4','P3',204),

('C5','D4','P4',207);

- Consultas solicitadas para o trabalho (SQL)

/*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 NOT LIKE '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

INNER JOIN Grade g USING (CodD)

INNER JOIN Professor p USING (CodP)

WHERE d.CargaD

/*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 USING (CodD)

INNER JOIN Professor p USING (CodP)

INNER JOIN Curso c USING (CodC)

WHERE c.DuracaoC > 3 AND 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 p.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 disciplina,

(CASE WHEN (pr.NomeD is null) THEN 'nenhum' ELSE pr.NomeD END) pre_requisito

FROM Disciplina d

LEFT JOIN Disciplina pr ON d.PreReqD = pr.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 > ALL (SELECT CargaD FROM Disciplina WHERE AreaD LIKE 'Matemática')

--OU, creio que o mais comumente utilizado:

SELECT NomeD FROM Disciplina

WHERE CargaD > (SELECT MAX(CargaD) FROM Disciplina WHERE AreaD LIKE '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) FROM Disciplina d

INNER JOIN Grade g USING (CodD)

GROUP BY d.CodD

ORDER BY d.CodD;

/*h) Carga horária média das áreas com carga horária média maior ou igual a 3.*/

SELECT AreaD, TRUNC(AVG(CargaD),2) carga_hr_med FROM Disciplina

WHERE AreaD not null

GROUP BY AreaD

HAVING TRUNC(AVG(CargaD),2) >= 3

ORDER BY AreaD;

/*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 1 FROM Disciplina pr WHERE pr.PreReqD = d.CodD);

--OU:

SELECT NomeD FROM Disciplina

WHERE PreReqD is null

AND CodD != ALL(SELECT d.CodD FROM Disciplina d

INNER JOIN Disciplina pr ON pr.PreReqD = d.CodD);

--OU:

SELECT NomeD FROM Disciplina WHERE PreReqD is null

EXCEPT

SELECT d.NomeD FROM Disciplina d INNER JOIN Disciplina pr ON pr.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 o referido curso.*/

SELECT c.NomeC FROM Curso c

WHERE

...

Baixar como  txt (5.1 Kb)   pdf (50.2 Kb)   docx (15.4 Kb)  
Continuar por mais 2 páginas »
Disponível apenas no Essays.club