Questão de Banco de Dados — Geral — INSTITUTO AOCP 2025
Banco de Dados›Geral
Código
qa699177
Banca
INSTITUTO AOCP
Órgão
IF PB
Ano
2025
Cargo
Tec ( )
No IFPB, um técnico de tecnologia da informação está desenvolvendo consultas em um sistema acadêmico para apoiar o setor de registro de alunos. É necessário identificar alunos que apresentam desempenho insatisfatório e não possuem nenhum tipo de bolsa acadêmica, mas que ingressaram por cota. Os critérios definidos são: • Alunos com mais de 5 reprovações; • Aproveitamento geral inferior a 6,0; • Sem qualquer tipo de bolsa acadêmica; • Ingresso por cota. Considere que a tabela Alunos possui os campos: • id_aluno — identificador do aluno; • nome — nome do aluno; • num_reprovacoes — quantidade de reprovações; • aproveitamento_geral — média geral ou aproveitamento acadêmico; • tipo_bolsa — se o aluno possui bolsa (NULL ou valor diferente de NULL); • tipo_ingresso — forma de ingresso (cota, ampla, etc.). Qual das seguintes consultas SQL retorna corretamente todos os alunos que atendem a esses critérios?
ASELECT id_aluno, nome FROM Alunos WHERE num_reprovacoes < 5 AND aproveitamento_geral >= 6.0 AND tipo_bolsa IS NOT NULL AND tipo_ingresso = 'ampla';
BSELECT id_aluno, nome, num_reprovacoes, aproveitamento_geral, tipo_bolsa, tipo_ingresso FROM Alunos WHERE num_reprovacoes > 5 AND aproveitamento_geral < 6.0 AND tipo_bolsa IS NULL AND tipo_ingresso = 'cota';
CSELECT id_aluno, nome FROM Alunos WHERE num_reprovacoes > 5 AND aproveitamento_geral > 6.0 AND tipo_bolsa IS NULL AND tipo_ingresso = 'cota';
DSELECT * FROM Alunos WHERE tipo_bolsa IS NOT NULL AND tipo_ingresso = 'cota';
ESELECT id_aluno, nome, num_reprovacoes, aproveitamento_geral FROM Alunos WHERE num_reprovacoes > 5 AND aproveitamento_geral < 6.0;
Revelar gabarito e comentário▾
GabaritoB — SELECT id_aluno, nome, num_reprovacoes,
aproveitamento_geral, tipo_bolsa, tipo_ingresso
FROM Alunos
WHERE num_reprovacoes > 5
AND aproveitamento_geral < 6.0
AND tipo_bolsa IS NULL
AND tipo_ingresso = 'cota';
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: filtros com operadores de comparação e NULL
Gabarito: letra B. A alternativa B é a única que traduz fielmente os quatro critérios do enunciado: mais de 5 reprovações (num_reprovacoes > 5), aproveitamento inferior a 6,0 (aproveitamento_geral < 6.0), ausência de bolsa (tipo_bolsa IS NULL) e ingresso por cota (tipo_ingresso = 'cota'). As demais alternativas invertem operadores, trocam a condição de NULL ou omitem critérios essenciais.
O comando SELECT com cláusula WHERE é a ferramenta central da linguagem SQL para filtrar registros de uma tabela. A cláusula WHERE avalia cada linha da tabela contra uma condição lógica (ou combinação de condições) e retorna apenas as linhas para as quais a condição é verdadeira. Para resolver esta questão, é preciso traduzir cada requisito de negócio em uma expressão SQL correta, prestando atenção especial a dois pontos: os operadores de comparação (>, <, >=, <=, =) e o tratamento de valores nulos (NULL).
O primeiro critério, "alunos com mais de 5 reprovações", exige o operador > (maior que), pois a expressão num_reprovacoes > 5 inclui apenas alunos com 6 ou mais reprovações. O segundo critério, "aproveitamento geral inferior a 6,0", exige o operador < (menor que), pois aproveitamento_geral < 6.0 exclui exatamente os alunos com média 6,0 ou superior. O terceiro critério, "sem qualquer tipo de bolsa acadêmica", é o mais traiçoeiro: como o campo tipo_bolsa pode ser NULL (ausência de valor) ou conter um valor (presença de bolsa), a condição correta é tipo_bolsa IS NULL. Usar tipo_bolsa = NULL seria um erro grave, pois NULL não é um valor, e qualquer comparação com NULL resulta em desconhecido, não em verdadeiro ou falso. O quarto critério, "ingresso por cota", é uma comparação direta de igualdade: tipo_ingresso = 'cota'.
A pegadinha central desta questão está na combinação dos operadores e na condição de NULL. A banca explora a confusão entre > e <, entre IS NULL e IS NOT NULL, e entre = 'cota' e = 'ampla'. O candidato que lê o enunciado com atenção e traduz cada critério literalmente chega à alternativa B sem dificuldade. Vamos analisar cada alternativa para fixar o raciocínio.
Alternativa A — ❌ Incorreta
Esta alternativa inverte todos os critérios: usa num_reprovacoes < 5 (menos de 5 reprovações, quando o correto é mais de 5), aproveitamento_geral >= 6.0 (aproveitamento maior ou igual a 6,0, quando o correto é inferior a 6,0), tipo_bolsa IS NOT NULL (alunos COM bolsa, quando o correto é sem bolsa) e tipo_ingresso = 'ampla' (ingresso por ampla concorrência, quando o correto é por cota). É o oposto exato do que o enunciado pede.
Alternativa B — ✅ Correta ⟵ GABARITO
Esta alternativa traduz corretamente todos os critérios: num_reprovacoes > 5 (mais de 5 reprovações), aproveitamento_geral < 6.0 (aproveitamento inferior a 6,0), tipo_bolsa IS NULL (sem bolsa, pois o campo é nulo) e tipo_ingresso = 'cota' (ingresso por cota). A combinação com AND garante que apenas alunos que atendam a todos os critérios simultaneamente sejam retornados.
Alternativa C — ❌ Incorreta
Esta alternativa acerta três critérios (num_reprovacoes > 5, tipo_bolsa IS NULL e tipo_ingresso = 'cota'), mas erra o critério do aproveitamento: usa aproveitamento_geral > 6.0 (aproveitamento superior a 6,0), quando o correto é aproveitamento_geral < 6.0 (aproveitamento inferior a 6,0). O operador > está invertido.
Alternativa D — ❌ Incorreta
Esta alternativa é a mais incompleta: usa tipo_bolsa IS NOT NULL (alunos COM bolsa, quando o correto é sem bolsa) e tipo_ingresso = 'cota' (ingresso por cota). Ela omite completamente os critérios de reprovações e aproveitamento, retornando todos os alunos com bolsa que ingressaram por cota, independentemente do desempenho.
Alternativa E — ❌ Incorreta
Esta alternativa acerta os critérios de reprovações (num_reprovacoes > 5) e aproveitamento (aproveitamento_geral < 6.0), mas omite os critérios de bolsa (tipo_bolsa IS NULL) e ingresso (tipo_ingresso = 'cota'). Ela retornaria alunos com desempenho insatisfatório, mas que possuem bolsa ou ingressaram por ampla concorrência, o que não atende ao enunciado.
NÃO CAIA NESSA!
A banca explora a inversão de operadores de comparação e a condição de NULL. O candidato que lê o enunciado com atenção e traduz cada critério literalmente chega à alternativa B sem dificuldade. A pegadinha está em trocar > por <, IS NULL por IS NOT NULL e 'cota' por 'ampla'. Com treino, você enxerga essas inversões de longe 💪.
PEGA ESSA DICA!
Para questões de SQL com filtros, traduza cada critério do enunciado em uma expressão SQL antes de olhar as alternativas. Use IS NULL para verificar ausência de valor, IS NOT NULL para presença de valor, e confira sempre a direção dos operadores de comparação (> para "mais que", < para "menos que").