Considere as tabelas abaixo:em que Aluno.matricula e Profess...

Próximas questões
Com base no mesmo assunto
Q307624 Banco de Dados
Considere as tabelas abaixo:

Imagem 011.jpg

em que Aluno.matricula e Professor.matricula são respectivamente chaves primárias das tabelas Aluno e Professor; a chave primária da tabela Aula é composta pelos campos matricula_professor e matricula_aluno, sendo que matricula_professor é chave estrangeira ligada à tabela Professor e matricula_aluno é chave estrangeira ligada à tabela Aluno. A consulta escrita em SQL ANSI para encontrar quais professores não ministram aula para nenhum aluno é:
Alternativas

Comentários

Veja os comentários dos nossos alunos

SELECT matricula 
FROM professor 
WHERE NOT EXISTS (SELECT matricula 
FROM Aluno WHERE EXISTS 
         (SELECT aula.matricula_professor FROM aula 
WHERE (aula.matricula_aluno = 
aluno.matricula) AND 
(professor.matricula = 
aula.matricula_professor)))

Na consulta interna, o banco de dados irá retornar verdadeiro se um professor tiver pelo menos um aluno, dentro da relação Aula.

Sendo isso verdadeiro, a consulta externa com a cláusula NOT EXISTIS torna-se falsa, pois esperava um retorno vazio. Logo nunhum professor será apresentado, nessa ocasião.

Quando o banco encontrar um professor que não tenha nenhum aluno. O retorno da consulta interna será vazio, logo o NOT EXISTS torna-se verdadeiro, e será retornado a matricula do Professor que não tenha nenhum aluno.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo