Questão FC369441
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 *
from competidor c, disputa d
where (c.nome = d.azul and c.nome = d.verde)
or (c.nome = d.verde and c.nome = d.azul)
O número de linhas produzidas pela execução desse comando, sem contar a linha de títulos, é:
- 0;
- 1;
- 6;
- 18;
- 36.
Mostrar resposta e comentário
Gabarito
A
Comentário do professor
A consulta gera inicialmente o produto cartesiano entre Competidor (6 linhas) e Disputa (6 linhas), totalizando \(6 \times 6 = 36\) combinações.
A cláusula WHERE exige que c.nome seja simultaneamente igual a d.azul e a d.verde na mesma linha (expressões do tipo c.nome = d.azul AND c.nome = d.verde). A segunda parte é simétrica e não acrescenta casos novos.
Como cada registro de Disputa registra dois competidores distintos (um azul e um verde), não existe situação em que um mesmo nome coincida com ambas as colunas na mesma linha. Logo, nenhuma combinação do produto cartesiano satisfaz a condição.
Portanto, a consulta retorna exatamente 0 linhas.
Conteúdo do catálogo FC Concursos · Atualizado em