Com relação aos comandos da linguagem SQL. Considere uma ta...
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
retrieveem vez deselect, que não é um comando válido no SQL, e também não utilizam a funçãoMAX()para encontrar a maior idade. -
Alternativa D utiliza a função
maxde forma incorreta, pois ela deve ser usada dentro de uma subquery ou função de agregação e não diretamente na cláusulaWHERE. -
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