SóProvas


ID
2752078
Banca
FAURGS
Órgão
BANRISUL
Ano
2018
Provas
Disciplina
Banco de Dados
Assuntos

Observe as tabelas MEDICOS e ESPECIALIDADES, definidas abaixo pelos comandos SQL, que representam médicos e especialidades médicas, respectivamente.

Create table ESPECIALIDADES
(code integer not null primary key,
nome varchar(60) not null);

Create table MEDICOS
(cod char(5) not null primary key,
nome varchar(100) not null,
code integer not null,
foreign key (code) references ESPECIALIDADES);

Considere o enunciado de uma consulta sobre as tabelas acima: “listar o nome das especialidades e os dados (código e nome) dos respectivos médicos, incluindo especialidades sem médicos correspondentes.”

Considere essa mesma consulta em SQL, abaixo:

SELECT E.nome as especialidade, M.cod as codmed, M.nome as NomeMedico
FROM ___________________________

Assinale a alternativa que completa corretamente a lacuna da consulta SQL acima.

Alternativas
Comentários
  • Alternativa correta: C.


    A questão quer duas coisas juntas em uma só:

    1 - os médicos e suas especialidades; e

    2 - as especialidades, independentemente de haver médicos que as pratiquem.


    Sendo assim, fica claro que pegar a tabela médicos e fazer um righ outer join com especialidades é a resposta da solução (letra C). Portanto, o comando SQL deve ter esse formato: tabela_médicos RIGHT OUTER JOIN tabela_especialidades.


    Não poderia ser a B porque nela temos um NATURAL JOIN, que não traz colunas duplicadas. Como a questão quer saber o nome do médico e o nome da especialidade ele não serve.