Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FUNDATEC 2025

Banco de DadosSQL
Código
qg475052
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2025
Nível
Superior
Cargo
Analista em Computação/Ênfase em Suporte em Banco de Dados
Em um sistema Oracle 19c, existe a seguinte tabela:Imagem associada para resolução da questãoQual 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?
  1. ASELECT Nome FROM Alunos WHERE Nota >= 7 AND Faltas <= 2;
  2. BSELECT Nome, Nota, Faltas FROM Alunos WHERE Nota >= 7 AND Faltas <= 2;
  3. CSELECT * FROM Alunos WHERE Nota >= 7 AND Faltas <= 2;
  4. DSELECT Nome FROM Alunos WHERE Nota >= 7 ORDER BY Faltas;
  5. 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”.

Consulta SQL com filtros compostos (WHERE com AND)

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, aplica o filtro de nota maior ou igual a 7 e o filtro de faltas menor ou igual a 2, combinados pelo operador lógico AND. As demais alternativas ou selecionam colunas extras, ou omitem um dos filtros, ou usam ORDER BY sem a condição completa.

A questão cobra a compreensão da cláusula WHERE com operadores de comparação (>=, <=) e o operador lógico AND. Em SQL, a estrutura básica de uma consulta é SELECT colunas FROM tabela WHERE condição. A condição pode combinar múltiplos critérios com AND (todos devem ser verdadeiros), OR (pelo menos um deve ser verdadeiro) e NOT (negação). Aqui, o enunciado pede dois critérios simultâneos: nota maior ou igual a 7 e faltas menor ou igual a 2. O AND é exatamente o operador que expressa essa simultaneidade.

Vamos decompor o que cada parte do comando faz:

  • SELECT Nome: projeta apenas a coluna Nome no resultado. Se a questão pede "uma lista com o nome dos alunos", qualquer coluna adicional (como Nota ou Faltas) torna o resultado diferente do solicitado.

  • FROM Alunos: indica a tabela de origem dos dados.

  • WHERE Nota >= 7: filtra as linhas onde o valor da coluna Nota é maior ou igual a 7. O operador >= inclui o valor 7.

  • AND Faltas <= 2: adiciona a segunda condição — a coluna Faltas deve ser menor ou igual a 2. O operador <= inclui o valor 2.

A combinação AND exige que ambas as condições sejam verdadeiras para a linha ser retornada. Ou seja, só aparecem alunos com nota 7 ou mais e com 2 ou menos faltas. Se um aluno tem nota 8 mas 3 faltas, ele é excluído; se tem nota 6 e 1 falta, também é excluído.

Um exemplo prático: suponha a tabela Alunos com os registros abaixo.

Nome

Nota

Faltas

Ana

8

1

Bruno

6

0

Carla

7

3

Diego

9

2

Elisa

5

4

Aplicando WHERE Nota >= 7 AND Faltas <= 2, temos:

  • Ana: nota 8 (>=7) e faltas 1 (<=2) → incluída.

  • Bruno: nota 6 (<7) → excluída.

  • Carla: nota 7 (>=7) mas faltas 3 (>2) → excluída.

  • Diego: nota 9 (>=7) e faltas 2 (<=2) → incluída.

  • Elisa: nota 5 (<7) → excluída.

Resultado: Ana e Diego. Perceba que o AND é restritivo: quanto mais condições, menos linhas retornadas.

A pegadinha desta questão está em dois pontos: (1) a diferença entre >= e > (e <= e <) — o enunciado diz "maior ou igual" e "2 ou menos", então os operadores corretos são >= e <=, que incluem os limites; (2) a necessidade de usar AND em vez de OR — se usasse OR, retornaria alunos que atendem a apenas uma das condições, o que não é o pedido.

Outro ponto que a banca explora é a projeção de colunas. O enunciado pede "o nome dos alunos", então SELECT Nome é o correto. Alternativas que trazem SELECT Nome, Nota, Faltas ou SELECT * retornam colunas extras, o que não corresponde ao pedido literal. A cláusula ORDER BY também é um distrator: ela apenas ordena o resultado, mas não substitui a necessidade de aplicar ambos os filtros no WHERE.

Guarde o critério decisivo: a alternativa correta deve ter (1) SELECT apenas com a coluna Nome, (2) WHERE com Nota >= 7, (3) AND, (4) Faltas <= 2. É exatamente essa combinação que separa a letra A das demais.

Alternativa A — ✅ Correta ⟵ GABARITO

O comando SELECT Nome FROM Alunos WHERE Nota >= 7 AND Faltas <= 2; atende perfeitamente ao enunciado. A projeção SELECT Nome retorna apenas o nome dos alunos, como pedido. A cláusula WHERE combina as duas condições com AND: Nota >= 7 (nota maior ou igual a 7) e Faltas <= 2 (faltas menor ou igual a 2). O operador >= inclui o valor 7, e <= inclui o valor 2, exatamente como o enunciado especifica ("maior ou igual a 7" e "2 ou menos faltas").

Alternativa B — ❌ Incorreta

O comando SELECT Nome, Nota, Faltas FROM Alunos WHERE Nota >= 7 AND Faltas <= 2; tem os filtros corretos, mas a projeção está errada. O enunciado pede "uma lista com o nome dos alunos", ou seja, apenas a coluna Nome. Ao incluir Nota e Faltas no SELECT, o resultado traz colunas adicionais, o que não corresponde ao que foi solicitado. A pegadinha aqui é que o filtro está certo, mas a projeção está ampliada demais.

Alternativa C — ❌ Incorreta

O comando SELECT * FROM Alunos WHERE Nota >= 7 AND Faltas <= 2; usa o curinga *, que retorna todas as colunas da tabela. Embora os filtros estejam corretos, o resultado inclui colunas como ID, Nota, Faltas e outras que possam existir, não apenas o Nome. O enunciado pede especificamente "o nome dos alunos", então SELECT * não atende. É o mesmo erro da alternativa B, mas de forma ainda mais ampla.

Alternativa D — ❌ Incorreta

O comando SELECT Nome FROM Alunos WHERE Nota >= 7 ORDER BY Faltas; tem dois problemas. Primeiro, falta o filtro Faltas <= 2 — a consulta retorna alunos com nota >= 7 independentemente do número de faltas, o que contraria o enunciado. Segundo, a cláusula ORDER BY Faltas apenas ordena o resultado por faltas, mas não filtra. A pegadinha é que o candidato pode achar que ORDER BY de alguma forma aplica a condição de faltas, mas ele só organiza a saída, não restringe as linhas.

Alternativa E — ❌ Incorreta

O comando SELECT Nome FROM Alunos WHERE Faltas <= 2 ORDER BY Nota; tem o filtro de faltas correto, mas omite o filtro Nota >= 7. A consulta retorna alunos com 2 ou menos faltas, independentemente da nota, o que não atende ao enunciado. Além disso, ORDER BY Nota apenas ordena o resultado, não filtra por nota. A pegadinha é a inversão: o candidato pode achar que a ordenação por nota de alguma forma aplica o critério de nota, mas ela só organiza a saída.

A regra de ouro para questões assim: leia o enunciado e identifique (1) quais colunas devem aparecer no resultado, (2) quais condições devem ser aplicadas no WHERE, e (3) se há necessidade de ordenação. A alternativa correta é a que casa exatamente esses três pontos. Aqui, a letra A é a única que projeta apenas Nome, aplica os dois filtros com AND e não usa ORDER BY desnecessariamente.

Gabarito: letra A

Link permanente: /questoes/qg475052