FC ConcursosFC Concursos

Questão FC369442

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 os três comandos SQL a seguir.

 

I. select C.nome

 from Competidor C

 where exists (select * from Disputa D

               where D.azul = C.nome)

and exists (select * from Disputa D

               where D.verde = C.nome)

 

II. select C.nome

  from Competidor C

  where exists (select * from Disputa D

                where D.azul = C.nome

                   or D.verde = C.nome)

 

III. select C.nome

  from Competidor C

  where (select count(*) from Disputa D

         where D.azul = C.nome)

      + (select count(*) from Disputa D

         where D.verde = C.nome) > 1

 

O resultado

 
Nome
A
B
 

é obtido somente no(s) comando(s):

  1. I;
  2. II;
  3. III;
  4. I e II;
  5. II e III.
Mostrar resposta e comentário

Gabarito

A

Comentário do professor

O comando usa duas subconsultas com exists para exigir que cada competidor de Competidor apareça pelo menos uma vez como Azul e pelo menos uma vez como Verde. Em termos lógicos: \( \exists(\text{Disputa.azul}=C.nome)\ \land\ \exists(\text{Disputa.verde}=C.nome)\).

Isso não conta ocorrências, apenas verifica existência em ambas as posições. Assim, basta uma linha em que o nome esteja em azul e outra (pode ser a mesma ou diferente) em verde para ser incluído.

Na instância dada, A aparece como Azul (linha 1) e como Verde (linhas 2,3,5), e B aparece como Azul (linha 3) e como Verde (linha 1). Portanto, apenas A e B satisfazem ambas as condições e são retornados.

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

Continue aprendendo