FC ConcursosFC Concursos

Questão FC369443

Quando referenciadas, considere as tabelas relacionais Competidor e Disputa, cujas estruturas e instâncias são descritas abaixo. Todas as colunas são definidas como strings. A tabe

Linguagem SQL

FGV · 2024

Quando referenciadas, considere as tabelas relacionais Competidor e Disputa, cujas estruturas e instâncias são descritas abaixo. Todas as colunas são definidas como strings.

 

A tabela Disputa contém as disputas realizadas entre competidores que aparecem na tabela Competidor. Em cada disputa há dois competidores, um com camisa azul e outro com camisa verde.

 

Competidor

 
Nome
A
B
c
D
E
F
 

Disputa

 

Azul

Verde

A B
C A
B A
C E
F A
F D
 

Considerando as tabelas Competidor e Disputa, descritas anteriormente, analise o comando SQL a seguir.

 

select nome

from Competidor C

where not exists (select *

                  from Disputa D

                  where D.azul = C.nome)

or not exists (select *

                  from Disputa D

                  where D.verde = C.nome)

 

A execução do comando acima produziria somente a lista completa dos competidores que:

  1. participaram em disputas com camisas das duas cores;
  2. nunca participaram em disputas com camisa verde;
  3. nunca participaram em disputas com camisa azul;
  4. nas disputas em que participaram, usaram sempre camisas da mesma cor;
  5. nunca participaram em disputas.
Mostrar resposta e comentário

Gabarito

D

Comentário do professor

O comando seleciona competidores para os quais vale pelo menos uma das duas condições: não existem registros na coluna Azul da tabela Disputa com seu nome, ou não existem registros na coluna Verde com seu nome.

Em SQL isso é expresso por not exists ... or not exists. Equivalentemente: \( \neg\exists(\text{aparições como azul}) \lor \neg\exists(\text{aparições como verde}) \).

Se um competidor nunca apareceu como Azul, então todas as suas participações (se houver) foram como Verde. Se nunca apareceu como Verde, todas foram como Azul.

Logo, o resultado reúne exatamente os competidores que, nas disputas em que participaram, usaram sempre camisas da mesma cor (incluindo quem nunca participou, que satisfaz a condição por ausência de aparições).

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

Continue aprendendo