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