Questão de Banco de Dados — Consultas e Comandos em SQL — FUNDATEC 2025
Banco de Dados›Consultas e Comandos em SQL
Código
qa699065
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2025
Cargo
ANC ( )
Em um sistema Oracle 19c, existe a seguinte tabela:
Tabela Alunos
IdAluno
Nome
Nota
Faltas
1
Ana
8
1
2
Bruno
7
3
3
Carla
9
2
...
...
...
...
Qual dos comandos SQL abaixo resulta em uma lista com o nome dos alunos com nota maior ou igual a 7 e com 2 ou menos faltas?
ASELECT Nome FROM Alunos WHERE Nota >= 7 AND Faltas <= 2;
BSELECT Nome, Nota, Faltas FROM Alunos WHERE Nota >= 7 AND Faltas <= 2;
CSELECT * FROM Alunos WHERE Nota >= 7 AND Faltas <= 2;
DSELECT Nome FROM Alunos WHERE Nota >= 7 ORDER BY Faltas;
ESELECT Nome FROM Alunos WHERE Faltas <= 2 ORDER BY Nota;
Revelar gabarito e comentário▾
GabaritoA — SELECT Nome FROM Alunos WHERE Nota >= 7 AND Faltas <= 2;
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”.
Consultas SQL: filtro com WHERE e projeção de colunas
Gabarito: letra A. O comando SELECT Nome FROM Alunos WHERE Nota >= 7 AND Faltas <= 2; é o único que atende exatamente ao pedido: retorna apenas a coluna Nome (projeção) e filtra as linhas com Nota >= 7eFaltas <= 2 (seleção com AND). As demais alternativas ou projetam colunas extras, ou usam ORDER BY no lugar do filtro de faltas, ou simplesmente não filtram corretamente.
A cláusula WHERE é o coração da consulta: ela define as condições que cada linha deve satisfazer para aparecer no resultado. No SQL, a estrutura básica de uma consulta é SELECT colunas FROM tabela WHERE condição. O SELECT escolhe quais colunas aparecem (projeção), o FROM indica de onde vêm os dados, e o WHERE filtra quais linhas entram (seleção). Quando há mais de uma condição, usamos operadores lógicos como AND (todas as condições devem ser verdadeiras) e OR (pelo menos uma deve ser verdadeira).
No caso, o enunciado pede alunos com nota maior ou igual a 7 e 2 ou menos faltas. Em SQL, "maior ou igual" é >= e "2 ou menos" é <= 2. A combinação correta é WHERE Nota >= 7 AND Faltas <= 2. O ORDER BY, presente em algumas alternativas, serve apenas para ordenar o resultado, não para filtrar — é uma pegadinha clássica: o candidato confunde ordenação com filtro.
Vamos aplicar ao exemplo da tabela: Ana (Nota 8, Faltas 1) → passa (8 ≥ 7 e 1 ≤ 2); Bruno (Nota 7, Faltas 3) → não passa (3 > 2); Carla (Nota 9, Faltas 2) → passa (9 ≥ 7 e 2 ≤ 2). O resultado correto seria: Ana e Carla.
A pegadinha desta questão está em duas frentes: (1) a projeção — o enunciado pede apenas o nome, então SELECT * ou SELECT Nome, Nota, Faltas trazem colunas a mais, o que não invalida o filtro, mas não atende ao pedido literal; (2) o ORDER BY — as alternativas D e E usam ORDER BY para "resolver" o filtro de faltas, mas ordenação não filtra. Guarde a diferença: WHEREseleciona linhas, ORDER BYorganiza as linhas já selecionadas.
1SELECT (projeção)
2FROM (origem)
3WHERE (filtro)
4ORDER BY (ordenação)
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
Esta é a resposta certa. O comando SELECT Nome FROM Alunos WHERE Nota >= 7 AND Faltas <= 2; faz exatamente o que o enunciado pede: projeta apenas a coluna Nome e filtra as linhas onde Nota é maior ou igual a 7 eFaltas é menor ou igual a 2. O operador AND garante que ambas as condições sejam verdadeiras simultaneamente. É a sintaxe canônica de uma consulta SQL com filtro composto.
Alternativa B — ❌ Incorreta
O filtro está correto (Nota >= 7 AND Faltas <= 2), mas a projeção inclui Nome, Nota, Faltas. O enunciado pede apenas o nome dos alunos. Embora o resultado contenha os alunos certos, ele traz colunas extras, o que não atende ao pedido literal. A banca testa se o candidato sabe diferenciar projeção (quais colunas) de seleção (quais linhas).
Alternativa C — ❌ Incorreta
O filtro está correto, mas SELECT * retorna todas as colunas da tabela (IdAluno, Nome, Nota, Faltas). O enunciado pede apenas o Nome. O * é um coringa que projeta todas as colunas — útil em algumas situações, mas aqui foge do que foi solicitado.
Alternativa D — ❌ Incorreta
O comando SELECT Nome FROM Alunos WHERE Nota >= 7 ORDER BY Faltas; filtra apenas por Nota >= 7, sem filtrar as faltas. O ORDER BY Faltas apenas ordena o resultado pela coluna Faltas, mas não exclui alunos com mais de 2 faltas. Bruno (Nota 7, Faltas 3) apareceria no resultado, o que contraria o enunciado. A pegadinha: ORDER BY não é filtro.
Alternativa E — ❌ Incorreta
O comando SELECT Nome FROM Alunos WHERE Faltas <= 2 ORDER BY Nota; filtra apenas por Faltas <= 2, sem filtrar a nota. O ORDER BY Nota apenas ordena, mas não exclui alunos com nota menor que 7. Um aluno com Nota 5 e Faltas 1 apareceria, o que contraria o enunciado. Novamente, a confusão entre WHERE (filtro) e ORDER BY (ordenação).
Gabarito: letra A — a única que combina projeção correta (Nome) e filtro completo (Nota >= 7 AND Faltas <= 2).