FC ConcursosFC Concursos

Questão FC369500

ATENÇÃO: O texto a seguir deve ser usado para a próxima questão. O esquema de um banco de dados relacional, especificado pelos comandos SQL a seguir, atenderá às consultas create t

Linguagem SQL

FGV · 2024

ATENÇÃO:

 

O texto a seguir deve ser usado para a próxima questão.

 

O esquema de um banco de dados relacional, especificado pelos comandos SQL a seguir, atenderá às consultas

 

create table candidato
(
    num_inscr    int         primary key,
    cpf_cand     char(11)    unique,
    nome         varchar(30)
);

create table questao
(
    id           int         primary key,
    texto        varchar(20) not null,
    gabarito     char(1)     check (gabarito in ('A','B','C','D','E'))
);

create table candidato_questao
(
    num_cand     int,
    cpf_cand     char(11),
    id_quest     int,
    opcao_mar    char(1),
    primary key(num_cand,id_quest),
    unique(cpf_cand,id_quest),
    foreign key(num_cand) references candidato,
    foreign key(cpf_cand) references candidato(cpf_cand),
    foreign key(id_quest) references questao
);

 

Considere que todos os candidatos que responderam questões tenham suas respostas registradas na tabela

   

candidato_questao.
select c.num_inscr, c.nome from candidato c
where not exists
    ( select 1 from candidato_questao cq
      where cq.num_cand = c.num_inscr );

 

A execução da consulta SQL especificada produz como resultado o número de inscrição e nome dos candidatos que responderam a

  1. alguma questão.
  2. exatamente uma questão.
  3. nenhuma questão.
  4. questões corretas.
  5. todas as questões.
Mostrar resposta e comentário

Gabarito

Certo

Comentário do professor

A cláusula NOT EXISTS faz com que a condição seja verdadeira apenas quando a subconsulta não retorna linhas.

No caso, a subconsulta consulta a tabela candidato_questao buscando linhas com cq.num_cand = c.num_inscr. Se não houver nenhuma linha correspondente, significa que aquele candidato não possui registro de resposta.

Assim, a consulta principal retorna o num_inscr e o nome de candidatos para os quais não existe nenhum registro em candidato_questao.

Portanto, o resultado reúne os candidatos que responderam a nenhuma questão, isto é, não têm respostas registradas na tabela de relacionamento.

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

Continue aprendendo