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
retrieve
em 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
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á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