Questão de Banco de Dados — Geral — CESPE / CEBRASPE 2026
Banco de Dados›Geral
Código
ce391082
Banca
CESPE / CEBRASPE
Órgão
SEED SE
Ano
2026
Cargo
PEB ( )
Em uma escola técnica, certo professor está analisando o desempenho dos alunos de informática com base na tabela Desempenho_Alunos, que contém os campos id, nome, turma, nota_projetos, nota_provas, faltas e ano. Esse professor deseja gerar uma lista apenas com os alunos da turma 3A, do ano de 2024, que tenham nota média — calculada como (nota_projetos + nota_provas)/2 — acima de 8 e menos de 5 faltas. A partir da situação apresentada, assinale a opção que corresponde ao comando SQL que atende exatamente a esse objetivo.
ASELECT nome, media FROM Desempenho_Alunos WHERE turma = '3A' AND ano = 2024 AND media > 8 AND faltas < 5;
BSELECT nome, nota_projetos, nota_provas FROM Desempenho_Alunos WHERE turma = '3A' AND ano = 2024 AND (nota_projetos + nota_provas)/2 > 8;
CSELECT nome, (nota_projetos + nota_provas)/2 AS media FROM Desempenho_Alunos WHERE turma = '3A' AND ano = 2024 AND (nota_projetos + nota_provas)/2 > 8 AND faltas < 5;
DSELECT nome FROM Desempenho_Alunos WHERE turma = '3A' AND ano = 2024;
ESELECT nome, (nota_projetos + nota_provas)/2 AS media FROM Desempenho_Alunos WHERE turma = '3A' AND ano = 2024 AND faltas < 5;
Revelar gabarito e comentário▾
GabaritoC — SELECT nome, (nota_projetos + nota_provas)/2 AS media
FROM Desempenho_Alunos WHERE turma = '3A' AND ano = 2024
AND (nota_projetos + nota_provas)/2 > 8
AND faltas < 5;
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
SQL – Consulta com Filtros e Cálculo de Média
Gabarito: letra C. A alternativa correta é a única que combina todos os filtros exigidos — turma = '3A', ano = 2024, média calculada como (nota_projetos + nota_provas)/2 > 8 e faltas < 5 — e ainda projeta a média com um alias (AS media). As demais alternativas omitem pelo menos um dos filtros ou tentam usar um alias inexistente na cláusula WHERE.
O enunciado pede uma consulta que retorne uma lista com os alunos da turma 3A, do ano de 2024, que tenham nota média acima de 8 e menos de 5 faltas. A média é definida como a soma das notas de projetos e provas dividida por dois. Para atender exatamente a esse objetivo, o comando SQL precisa:
Selecionar os campos desejados: nome e a média calculada. A média não é uma coluna da tabela, então precisa ser calculada na projeção (SELECT) e, idealmente, receber um alias (AS media) para facilitar a leitura.
Filtrar a turma e o ano: WHERE turma = '3A' AND ano = 2024.
Filtrar pela média: como a média é calculada, o filtro deve repetir a expressão (nota_projetos + nota_provas)/2 > 8 na cláusula WHERE. Não é possível usar o alias media no WHERE, pois a ordem de execução do SQL avalia o WHERE antes do SELECT (o alias ainda não existe).
Filtrar pelas faltas: AND faltas < 5.
A pegadinha central desta questão é a tentativa de usar o alias media na cláusula WHERE, como na alternativa A. Isso é um erro clássico de SQL: a ordem lógica de execução de uma consulta é FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY. O WHERE é avaliado antes do SELECT, portanto o alias definido no SELECT não está disponível para o filtro. A alternativa C contorna isso repetindo a expressão da média no WHERE, o que é a forma correta.
Outra pegadinha é a omissão de filtros. As alternativas B, D e E deixam de filtrar por faltas, por média ou por ambos, respectivamente. A alternativa B, por exemplo, filtra a média mas esquece o filtro de faltas. A alternativa E filtra as faltas mas esquece o filtro de média. A alternativa D não filtra nem pela média nem pelas faltas.
Para fixar, a ordem de execução do SQL é um ponto que a banca adora explorar. Lembre-se: o WHERE não enxerga aliases criados no SELECT. Se precisar filtrar por um valor calculado, repita a expressão no WHERE ou use uma subconsulta.
1FROM
2WHERE
3GROUP BY
4HAVING
5SELECT
6ORDER BY
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Esta alternativa tenta usar o alias media na cláusula WHERE (AND media > 8). Isso é inválido porque o alias é definido no SELECT, que é avaliado depois do WHERE na ordem de execução do SQL. O banco de dados não reconhece media como uma coluna da tabela, resultando em erro de sintaxe ou de coluna inexistente. Além disso, a projeção SELECT nome, media também referencia um alias que não foi definido — o correto seria SELECT nome, (nota_projetos + nota_provas)/2 AS media. O erro específico é a referência a um alias no WHERE, que não existe naquele ponto da execução.
Alternativa B — ❌ Incorreta
Esta alternativa calcula a média corretamente no WHERE, mas omite o filtro de faltas (AND faltas < 5). O enunciado exige que o aluno tenha menos de 5 faltas, e sem esse filtro a consulta retornaria alunos com 5 ou mais faltas, não atendendo ao objetivo. O erro específico é a omissão de um dos critérios de filtragem.
Alternativa C — ✅ Correta ⟵ GABARITO
Esta alternativa atende a todos os requisitos: projeta nome e a média calculada com alias AS media; filtra turma = '3A' e ano = 2024; repete a expressão da média no WHERE ((nota_projetos + nota_provas)/2 > 8); e inclui o filtro de faltas (faltas < 5). A repetição da expressão no WHERE é a forma correta de filtrar por um valor calculado, já que o alias não pode ser usado ali. A consulta retorna exatamente os alunos da turma 3A, de 2024, com média acima de 8 e menos de 5 faltas.
Alternativa D — ❌ Incorreta
Esta alternativa omite todos os filtros de média e faltas, retornando todos os alunos da turma 3A do ano de 2024, independentemente do desempenho. O enunciado pede apenas os alunos com média acima de 8 e menos de 5 faltas, então essa consulta é claramente insuficiente. O erro específico é a ausência dos critérios de desempenho.
Alternativa E — ❌ Incorreta
Esta alternativa calcula a média e filtra as faltas, mas omite o filtro de média ((nota_projetos + nota_provas)/2 > 8). O enunciado exige que a média seja acima de 8, e sem esse filtro a consulta retornaria alunos com média igual ou inferior a 8. O erro específico é a omissão do critério de média.
NÃO CAIA NESSA!
A banca explora a ordem de execução do SQL. Na alternativa A, ela tenta usar o alias media no WHERE, o que é inválido. O candidato desatento pode achar que o alias está disponível, mas o WHERE é avaliado antes do SELECT. A regra de ouro: para filtrar por um valor calculado, repita a expressão no WHERE ou use uma subconsulta — nunca use o alias.
PEGA ESSA DICA!
Decore a ordem de execução do SQL: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY. Isso explica por que o alias não funciona no WHERE e por que o ORDER BY pode usar o alias (ele é avaliado depois do SELECT). Em questões de filtro por cálculo, verifique se a expressão foi repetida no WHERE.