FC ConcursosFC Concursos

Questão FC372899

Sejam as seguintes tabelas de um banco de dados relacional: Médico (CRM, Nome-Médico, Especialidade) Atende (ID, CRM) Paciente (ID, Nome-Paciente, Data-Nascimento) O comando T-SQL

Linguagem SQL

FCC · 2018

Sejam as seguintes tabelas de um banco de dados relacional: 

 

Médico (CRM, Nome-Médico, Especialidade) 

Atende (ID, CRM)

Paciente (ID, Nome-Paciente, Data-Nascimento) 

 

O comando T-SQL para obter o nome dos pacientes, o nome e especialidade de seus médicos é: 

  1. SELECT Nome-Paciente, Nome-Médico, Especialidade 

    FROM Médico, Atende, Paciente 

  2. SELECT Nome-Paciente, Nome-Médico, Especialidade 

    FROM Médico, Atende, Paciente 

    WHERE CRM = CRM AND ID = ID 

  3. SELECT Nome-Paciente, Nome-Médico, Especialidade 

    FROM Médico, Paciente 

    HERE Médico.CRM = Atende.CRM AND Atende.ID = Paciente.ID 

  4. SELECT Nome-Paciente, Nome-Médico, Especialidade 

    FROM Médico, Paciente 

  5. SELECT Nome-Paciente, Nome-Médico, Especialidade 

    FROM Médico, Atende, Paciente 

    WHERE Médico.CRM = Atende.CRM AND Atende.ID = Paciente.ID 

Mostrar resposta e comentário

Gabarito

Errado

Comentário do professor

A consulta SELECT Nome-Paciente, Nome-Médico, Especialidade FROM Médico, Atende, Paciente WHERE Médico.CRM = Atende.CRM AND Atende.ID = Paciente.ID funciona porque usa a tabela Atende como ligação entre Médico e Paciente.

A tabela Atende contém as chaves que referenciam CRM (do médico) e ID (do paciente). Ao vincular essas chaves na cláusula WHERE — Médico.CRM = Atende.CRM e Atende.ID = Paciente.ID — selecionamos apenas as tuplas que representam atendimentos reais, evitando o produto cartesiano entre as três tabelas.

Com isso, o SELECT retorna corretamente o nome do paciente e, a partir da correspondência pela chave, o nome e a especialidade do médico responsável por cada atendimento.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo