Em uma unidade da Polícia Penal, a área de gestão de pessoas...

Próximas questões
Com base no mesmo assunto
Q4233117 Banco de Dados
Em uma unidade da Polícia Penal, a área de gestão de pessoas precisa identificar os servidores que já têm idade igual ou superior a 60 anos, a fim de elaborar relatórios administrativos relacionados a critérios etários. As informações estão armazenadas em uma tabela chamada servidores, que contém as colunas nome, cargo, idade e lotação. Considerando uma consulta SQL para retornar apenas os registros que atendam a essa condição, assinale a alternativa que apresenta a cláusula utilizada para filtrar os dados.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: B

Fundamento decisivo: A alternativa correta dependia de identificar a cláusula SQL usada para filtrar registros por uma condição.

Tema central: Filtragem de linhas SQL
Análise das alternativas
A
Errada
GROUP BY é cláusula de agrupamento de registros por coluna(s). O pedido da questão é filtro simples de linhas por condição etária, e agrupamento não substitui essa função.
B
Certa
A alternativa B está certa porque WHERE é a cláusula usada para restringir os registros retornados por uma consulta conforme uma condição lógica. Para selecionar apenas os servidores com idade maior ou igual a 60, o critério técnico aplicável é o de filtragem de linhas da tabela.
C
Errada
ORDER BY serve para ordenar o resultado da consulta. Ordenar não restringe quais registros serão retornados, por isso não atende ao comando de filtrar servidores com idade >= 60.
D
Errada
JOIN é usado para combinar dados de tabelas diferentes. O enunciado trata de uma única tabela, servidores, e da aplicação de uma condição de seleção, não de junção entre tabelas.
E
Errada
HAVING TABLE não corresponde à cláusula adequada nem à forma sintática padrão para esse caso.
Pegadinha da questão
A confusão real era trocar filtragem de linhas por outras operações SQL, especialmente lembrar de HAVING como cláusula de filtro e esquecer que, no caso sem agrupamento, a cláusula correta é WHERE; além disso, 'HAVING TABLE' induz erro por parecer sintaxe válida.
Dica para questões semelhantes
  • Se o enunciado pedir para retornar apenas registros que satisfaçam uma condição em uma tabela, o critério inicial é WHERE.
  • Diferencie função da cláusula: WHERE filtra linhas, GROUP BY agrupa, ORDER BY ordena e JOIN combina tabelas.
  • Se não há agregação nem grupos no enunciado, não há base para preferir HAVING em vez de WHERE.

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

SELECT nome, cargo, idade, lotação FROM servidores WHERE idade >= 60;



WHERE: É a cláusula de restrição/filtragem de linhas. Ela avalia uma condição lógica (idade >= 60) e só retorna os registros que forem verdadeiros.

GROUP BY - vai retornar apenas o nome do primeiro com idade maior/igual a 60

ORDER BY - vai retornar todos os valores ordenados por ordem crescente/decrescente e não somente os de idade maior/igual a 60

JOIN - não faz sentido para a questão essa função

HAVING TABLE - usado com o GROUP BY, também excluirá resultados com idade maior/igual a 60

  • As outras alternativas servem para objetivos estruturais diferentes:

    • GROUP BY (A): É usado para agrupar linhas que têm os mesmos valores em linhas de resumo (por exemplo, agrupar para contar quantos servidores existem em cada lotação).

    • ORDER BY (C): Serve para ordenar o resultado da busca (por exemplo, exibir a lista em ordem alfabética ou do mais velho para o mais novo), mas ele não filtra ou exclui ninguém da lista.

    • JOIN (D): É usado para cruzar e juntar colunas que estão espalhadas em tabelas diferentes.

    • HAVING TABLE (E): Essa expressão é inventada e não existe na sintaxe SQL. Existe apenas a cláusula HAVING, que atua como um filtro, mas só pode ser usada para filtrar resultados matemáticos depois que eles foram agrupados pelo GROUP BY.

Clique para visualizar este comentário

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