FC ConcursosFC Concursos

Questão FC295914

Considere que, em um modelo relacional, há três tabelas bem formadas denominadas Jogador, Participa e Time, de tal forma que a tabela Participa, que representa que jogador particip

Linguagem SQL

CESGRANRIO · 2018

Considere que, em um modelo relacional, há três tabelas bem formadas denominadas Jogador, Participa e Time, de tal forma que a tabela Participa, que representa que jogador participa de que time, tem a sua PK formada pela PK de Jogador e pela PK de Time. A PK dos jogadores é o seu CPF, e a PK dos times é o seu CNPJ. Ou seja, Jogador (CPF, Nome, ...), Time (CNPJ, Nome, UF, ...) e Participa (CPF, CNPJ).

O comando SQL que apresenta o nome dos jogadores dos times do Rio de Janeiro tem a seguinte estrutura:

  1. SELECT J.Nome FROM Jogador J, Participa P, Time T WHERE J.CPF=P.CPF AND T.CNPJ=P.CNPJ AND UF=’RJ’
  2. SELECT J.Nome FROM Jogador J, Time T WHERE UF=’RJ’
  3. SELECT Nome FROM Jogador J, Participa P WHERE J.CPF=P.CPF AND UF=’RJ’
  4. SELECT Nome FROM Time T, Participa P WHERE T.CNPJ=P.CNPJ AND UF=’RJ’
  5. SELECT Nome FROM Time WHERE UF=’RJ’
Mostrar resposta e comentário

Gabarito

A

Comentário do professor

A consulta SELECT J.Nome FROM Jogador J, Participa P, Time T WHERE J.CPF=P.CPF AND T.CNPJ=P.CNPJ AND UF='RJ' utiliza aliases para simplificar a leitura: J (Jogador), P (Participa) e T (Time).

O FROM lista as três tabelas necessárias; a tabela Participa é a entidade associativa que relaciona jogadores e times por meio das chaves primárias CPF (Jogador) e CNPJ (Time).

A condição no WHERE realiza duas junções implícitas: J.CPF = P.CPF liga Jogador a Participa, e T.CNPJ = P.CNPJ liga Time a Participa. Isso garante que só serão considerados jogadores efetivamente vinculados a um time.

Por fim, o predicado UF='RJ' filtra os registros para equipes do Rio de Janeiro; o SELECT J.Nome retorna apenas os nomes dos jogadores desses times.

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

Continue aprendendo