FC ConcursosFC Concursos

Questão FC369448

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 abaixo.

 

select c1.nome, c2.nome

from Competidor c1, Competidor c2

where not exists

               (select * from Disputa d

                where d.azul = c2.nome

                    and d.verde = c1.nome)

order by 1,2

 

Excetuados os títulos, o número de linhas produzidas pela execução desse comando é:

  1. 0;
  2. 6;
  3. 12;
  4. 30;
  5. 36.
Mostrar resposta e comentário

Gabarito

D

Comentário do professor

O comando faz um produto cartesiano entre Competidor c1 e Competidor c2, gerando \(6\times6=36\) pares possíveis de nomes.

Em seguida, a cláusula NOT EXISTS mantém apenas os pares (c1.nome, c2.nome) para os quais NÃO existe na tabela Disputa uma linha com d.azul = c2.nome e d.verde = c1.nome — isto é, elimina pares cuja disputa na ordem (azul, verde) já está registrada.

As disputas presentes são: (A,B), (C,A), (B,A), (C,E), (F,A), (F,D). São 6 pares que serão excluídos do produto cartesiano.

Portanto o total de linhas retornadas é \(36-6=30\).

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

Continue aprendendo