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 é:
- SELECT Nome-Paciente, Nome-Médico, Especialidade
FROM Médico, Atende, Paciente
- SELECT Nome-Paciente, Nome-Médico, Especialidade
FROM Médico, Atende, Paciente
WHERE CRM = CRM AND ID = ID
- SELECT Nome-Paciente, Nome-Médico, Especialidade
FROM Médico, Paciente
HERE Médico.CRM = Atende.CRM AND Atende.ID = Paciente.ID
- SELECT Nome-Paciente, Nome-Médico, Especialidade
FROM Médico, Paciente
- 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