Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — CSC IFPA 2019

Banco de DadosConsultas e Comandos em SQL
Código
qa138740
Banca
CSC IFPA
Órgão
IF PA
Ano
2019
Cargo
ATI ( )
O modelo lógico abaixo é um fragmento da modelagem de um sistema de recursos humanos em que o Funcionário se relaciona com seus dependentes e esses dependentes se relacionam com os seus registros de vacinações. Onde: A coluna “matricula” da tabela Dependente é uma chave estrangeira em relação à tabela “Funcionario”, a coluna “idDep” da tabela “Vacinacao” é uma chave estrangeira em relação à tabela “Dependente”, a coluna “idVacina” da tabela “Vacinacao” é uma chave estrangeira em relação à tabela “Vacina” e as colunas “matricula”, “idDep”, “idVacina” e “idVacinacao” são chaves primárias das tabelas “Funcionario”, “Dependente”,”Vacina” e “Vacinacao” respectivamente. A sentença SQL que projeta a matricula do funcionário, o seu nome e o nome do seu dependente que ainda não registrou a aplicação de nenhum tipo de vacina, é:Imagem associada para resolução da questão
  1. ASELECT funcionario.matricula,nome, nomedep FROM funcionario, dependente WHERE not exists (SELECT '' FROM vacinacao )
  2. BSELECT funcionario.matricula,nome, nomedep FROM funcionario FULL OUTER JOIN dependente WHERE iddep not in (SELECT iddep FROM vacinacao where dependente.iddep = vacinacao.iddep )
  3. CSELECT funcionario.matricula,nome, nomedep FROM funcionario INNER JOIN dependente ON funcionario.matricula = dependente.matricula LEFT JOIN vacinacao ON dependente.iddep = vacinacao.iddep WHERE idvacinacao is null
  4. DSELECT funcionario.matricula,nome, nomedep FROM funcionario, dependente WHERE iddep not in (SELECT iddep FROM vacinacao WHERE dependente.iddep = vacinacao.iddep )
  5. ESELECT funcionario.matricula,nome, nomedep FROM funcionario INNER JOIN dependente ON funcionario.matricula = dependente.matricula RIGHT JOIN vacinacao ON dependente.iddep = vacinacao.iddep WHERE idvacinacao is null
Revelar gabarito e comentário

GabaritoC — SELECT funcionario.matricula,nome, nomedep FROM funcionario INNER JOIN dependente ON funcionario.matricula = dependente.matricula LEFT JOIN vacinacao ON dependente.iddep = vacinacao.iddep WHERE idvacinacao is null

Link permanente: /questoes/qa138740