Imagem de fundo

Em um banco de dados, existem as seguintes tabelas:ALUNO...

Em um banco de dados, existem as seguintes tabelas:


ALUNO (cod1, nomeal)

DISCIPLINA (cod2, nomedis)

MATRICULA (codtb1,codtb2)


No qual, cod1 é chave primária da tabela ALUNO e nomeal é o nome do aluno; cod2 é chave primária da tabela DISCIPLINA e nomedis é o nome da disciplina; codtb1+codtb2 é a chave primária da tabela MATRICULA.


O campo codtb1 (da tabela MATRICULA) é chave estrangeira ligada à chave cod1 da tabela ALUNO e o campo codtb2 (da tabela MATRICULA) é chave estrangeira ligada à chave cod2 da tabela DISCIPLINA.


Usando SQL padrão, a consulta para achar os alunos que estão matriculados em todas as disciplinas é:


A

SELECT nomeal FROM ALUNO

WHERENOTEXISTS(SELECTnomedis FROM

DISCIPLINA WHERE NOT EXISTS

(SELECT MATRICULA.codtb1 FROM MATRICULA

WHERE (ALUNO.cod1 = MATRICULA.codtb1) AND

(DISCIPLINA.cod2=MATRCULA.codtb2)


B

SELECT nomedis FROM DISCIPLINA

WHERE NOTEXISTS(SELECTnomeal FROM

ALUNO WHERE NOT EXISTS

(SELECT MATRICULA.codtb2 FROM MATRICULA

WHERE (ALUNO.cod1 = MATRICULA.codtb1) AND

(DISCIPLINA.cod2=MATRCULA.codtb2)


C

SELECT nomeal FROM ALUNO

WHERENOTEXISTS(SELECTnomedis FROM

DISCIPLINA WHERE EXISTS

(SELECT MATRICULA.codtb1 FROM MATRICULA

WHERE (ALUNO.cod1 = MATRICULA.codtb1) AND

(DISCIPLINA.cod2=MATRCULA.codtb2)


D

SELECT nomedis FROM DISCIPLINA

WHERE EXISTS (SELECT nomeal FROM

ALUNO WHERE NOT EXISTS

(SELECT MATRICULA.codtb2 FROM MATRICULA

WHERE (ALUNO.cod1 = MATRICULA.codtb1) AND

(DISCIPLINA.cod2=MATRCULA.codtb2)