Com relação aos comandos da linguagem SQL. Considere uma ta...

Próximas questões
Com base no mesmo assunto
Q625010 Banco de Dados
Com relação aos comandos da linguagem SQL. Considere uma tabela professores com os campos mat_prof, nome_professor e idade. Assinale a alternativa que contenha o comando SQL que retorne somente os professores que apresentem a maior idade.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: A - select * from professores where idade = (select max(idade) from professores)

Para resolver essa questão, é necessário entender o conceito de subquery (subconsulta) no SQL e a função de agregação MAX(). A subquery é uma consulta dentro de outra consulta, que retorna um valor ou conjunto de valores para serem utilizados pela consulta externa. A função MAX() é uma função de agregação que retorna o maior valor de uma coluna em um conjunto de registros.

A alternativa correta faz uso de uma subquery para encontrar a maior idade entre todos os professores através da função MAX() aplicada à coluna idade da tabela professores. Depois, a consulta externa usa o valor retornado pela subconsulta para filtrar e retornar todos os registros de professores que possuem essa idade máxima.

Aqui está o porquê da alternativa A estar correta:

A instrução SQL em questão é composta por uma consulta principal que seleciona todos os campos (*) da tabela professores, onde a condição imposta é que a coluna idade deve ser igual ao valor retornado pela subquery. A subquery, que está dentro dos parênteses, seleciona o maior valor de idade (max(idade)) da mesma tabela professores. Portanto, a consulta principal só retornará os professores que tenham a maior idade registrada na tabela.

É importante destacar que as demais alternativas estão incorretas por diferentes motivos:

  • Alternativa B e C utilizam retrieve em vez de select, que não é um comando válido no SQL, e também não utilizam a função MAX() para encontrar a maior idade.
  • Alternativa D utiliza a função max de forma incorreta, pois ela deve ser usada dentro de uma subquery ou função de agregação e não diretamente na cláusula WHERE.
  • Alternativa E também apresenta um erro na utilização da função max, faltando a subquery necessária para retornar o valor desejado.

Compreender o uso correto de subqueries e funções de agregação, como visto na alternativa A, é fundamental para realizar consultas complexas em bancos de dados SQL.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Resposta é a letra A.

Primeiramente, temos que buscar os dados do professor, fazendo assim o SELEC * FROM professores. Esse comando retornaria todos os professores. Como queremos que o professor retornado seja apenas 1 e seja aquele com a maior idade, adicionamos a cláusula WHERE, que restringe / filtra nossos resultado e especificamos ela com um outro select, que retorna apenas o professor com a maior idade WHERE idade = (SELECT MAX(idade) FROM professores). O nosso segundo SELECT retorna apenas uma idade, que será checada/usada como referencia para a filtragem.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo