Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FUNRIO 2018

Banco de DadosSQL
Código
qq354873
Banca
FUNRIO
Órgão
AL-RR
Ano
2018
Nível
Superior
Cargo
Analista de Sistemas
Seja o banco de dados relacional definido a seguir, que armazena dados de pacientes, medicações, e como medicamentos são ministrados a pacientes. A chave primária de cada tabela é representada com a marca <PK>, e as chaves estrangeiras com <FK>. medicacao (idmedic <PK> , nome, dosagem) paciente (idpac <PK>, nome)prescricao (idprescr<PK>, idpac <FK> , idmedic ,<FK>data, hora)o atributo prescricao.idpac referencia a tabela paciente o atributo prescricao.idmedic referencia a tabela medicacaoAssinale a alternativa que traduz para SQL a consulta liste o nome dos pacientes para os quais tenham sido prescritas todas as medicações cadastradas.
  1. Aselect pa.nome from paciente pawhere pa.idpac = all (select pr.idpac from prescricao pr )
  2. Bselect pa.nome from paciente pawhere not exists ( select * from prescricao pr (where pr.idpac = pa.idpac )
  3. Cselect pa.nome from paciente pawhere not exists ( select idmedic from medicacaoexcept( select me.idmedic frommedicacao me ,prescricao prwhere me.idmedic =pr.idmedic ) )
  4. Dselect pa.nome from paciente pawhere not exists ( select 1from medicacao mewhere not exists( select 2 from prescricaoprwhere pr.idpac =pa.idpac andpr.idmedic =me.idmedic ) )
Revelar gabarito e comentário

GabaritoD — select pa.nome from paciente pa where not exists ( select 1from medicacao me where not exists ( select 2 from prescricao pr where pr.idpac = pa.idpac and pr.idmedic = me.idmedic ) )

Link permanente: /questoes/qq354873