SóProvas


ID
2555959
Banca
PUC-PR
Órgão
TJ-MS
Ano
2017
Provas
Disciplina
Banco de Dados
Assuntos

Considere o modelo relacional a seguir. A expressão em SQL que encontra os nomes, as idades e os países de residência de todos os jogadores que jogam no time 'ASTJ Sport Club', ganham mais de R$ 10.000,00 (dez mil reais) e que resultado deve gerar uma lista em que cada jogador aparece em um registro único.


jogador(nome-jogador, idade, pais)

joga(nome-jogador, nome-time, salario)

time(nome-time, pais)

Alternativas
Comentários
  • Vamos lá! Primeira coisa que o examinador diz é que a consulta deve retornar nome, idade e país de residência de um determinado grupo de jogadores. Podemos começar a consulta com:

    SELECT nome-jogador, idade, pais

    FROM jogador

    Agora vamos ver quais são os critérios estabelecidos na consulta. jogadores que jogam no time 'ASTJ Sport Club', ganham mais de R$ 10.000,00 (dez mil reais)

    Vamos precisar dos atributos nome-time e salario, que estão na tabela joga. Assim, precisamos fazer uma junção:

    SELECT jogador.nome-jogador, jogador.idade, jogador.pais

    FROM jogador

    INNER JOIN joga ON jogador.nome-jogador = joga.nome-jogador

    WHERE joga.nome-time = 'ASTJ Sport Club'

     AND joga.salario > 1000

    Contudo, veja que as alternativas disponíveis utilizam a sintaxe antiga das junções, através da cláusula WHERE. “Convertendo” a nossa consulta para esse formato, ficaria o seguinte:

    SELECT jogador.nome-jogador, jogador.idade, jogador.pais

    FROM jogador, joga

    WHERE jogador.nome-jogador = joga.nome-jogador

     AND joga.nome-time = 'ASTJ Sport Club'

     AND joga.salario > 1000

    Observe que a consulta é muito parecida com a da assertiva A. A diferença é que nas cláusulas

    joga.nome-time = 'ASTJ Sport Club'

    AND joga.salario > 1000

    O examinador não utiliza o prefixo joga. Isso é possível porque a consulta utiliza somente as tabelas jogador e joga. Sendo assim, como esses atributos nome-time e salario somente existem na tabela joga, podemos omitir a informação da tabela a qual eles pertencem, já que atributos com esse não se repetem dentre as tabelas utilizadas.

    Se fôssemos também considerar a tabela time na consulta, contudo, precisaríamos especificar de qual tabela seria o atributo nome-time que estamos utilizando, pois este existe tanto em time quanto em joga.

    Gabarito: A

  • Vamos lá! Primeira coisa que o examinador diz é que a consulta deve retornar nome, idade e país de residência de um determinado grupo de jogadores. Podemos começar a consulta com:

    SELECT nome-jogador, idade, pais

    FROM jogador

    Agora vamos ver quais são os critérios estabelecidos na consulta. jogadores que jogam no time 'ASTJ Sport Club', ganham mais de R$ 10.000,00 (dez mil reais)

    Vamos precisar dos atributos nome-time e salario, que estão na tabela joga. Assim, precisamos fazer uma junção:

    SELECT jogador.nome-jogador, jogador.idade, jogador.pais

    FROM jogador

    INNER JOIN joga ON jogador.nome-jogador = joga.nome-jogador

    WHERE joga.nome-time = 'ASTJ Sport Club'

     AND joga.salario > 1000

    Contudo, veja que as alternativas disponíveis utilizam a sintaxe antiga das junções, através da cláusula WHERE. “Convertendo” a nossa consulta para esse formato, ficaria o seguinte:

    SELECT jogador.nome-jogador, jogador.idade, jogador.pais

    FROM jogador, joga

    WHERE jogador.nome-jogador = joga.nome-jogador

     AND joga.nome-time = 'ASTJ Sport Club'

     AND joga.salario > 1000

    Observe que a consulta é muito parecida com a da assertiva A. A diferença é que nas cláusulas

    joga.nome-time = 'ASTJ Sport Club'

    AND joga.salario > 1000

    O examinador não utiliza o prefixo joga. Isso é possível porque a consulta utiliza somente as tabelas jogador e joga. Sendo assim, como esses atributos nome-time e salario somente existem na tabela joga, podemos omitir a informação da tabela a qual eles pertencem, já que atributos com esse não se repetem dentre as tabelas utilizadas.

    Se fôssemos também considerar a tabela time na consulta, contudo, precisaríamos especificar de qual tabela seria o atributo nome-time que estamos utilizando, pois este existe tanto em time quanto em joga.

    Gabarito: A

    Fonte: Arthur Mendonça, Direção Concursos