Considere o seguinte banco de dados: Medicos (Nome,

Considere o seguinte banco de dados: Medicos (Nome, Codm) Pacientes (Nome,


publicidade
Considere o seguinte banco de dados:
Medicos (Nome, Codm) Pacientes (Nome, Codp) Consultas (Codm, codp)
O comando SQL que busca os nomes dos médicos que têm consulta marcada com todos os pacientes é
Analisando...
publicidade

🚀 Desbloqueie a explicação completa

Veja comentários detalhados e resoluções exclusivas para entender o gabarito desta questão.

Criar conta grátis
  • Matheus Fernandes
    Matheus Fernandes EQUIPE
    22/10/2026 • 04:01
    Vamos analisar o problema que é clássico em SQL: queremos encontrar os médicos que têm consulta marcada com todos os pacientes. Ou seja, para cada paciente, tem que haver uma consulta associada com aquele médico.

    Para resolver isso, a abordagem correta é usar uma subconsulta com a cláusula NOT EXISTS para garantir que não exista paciente para o qual aquele médico não tenha consulta marcadas. Em outras palavras, o médico escolhido é aquele para o qual não existe paciente sem consulta com ele.

    A alternativa correta é a letra d, que implementa exatamente essa lógica: 'select m.nome from Medicos m where not exists (select * from Pacientes p where not exists (select * from Consultas c where p.codp = c.codp and m.codm = c.codm))'.

    Isso significa que para o médico m, não existe paciente p que não tenha consulta marcada com ele. Ou seja, o médico tem consulta com todos os pacientes.

    As outras opções não implementam corretamente essa lógica de "todos", ou fazem apenas verificações de existência simples, não garantindo a condição para todos os pacientes.

    Portanto, o gabarito é a letra d.
publicidade
🍪

Utilizamos cookies e tecnologias semelhantes para aprimorar sua experiência de navegação. Política de Privacidade.