Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — FUNDATEC 2023

Banco de DadosConsultas e Comandos em SQL
Código
qa537840
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2023
Cargo
ANC ( )
Considere o seguinte comando:   SELECT * FROM Pessoa WHERE IdPessoa BETWEEN 4 AND 10   Serão listados os dados das pessoas que tiverem:
  1. AIdPessoa no conjunto de valores {5,6,7,8,9}
  2. BIdPessoa > 4 e IdPessoa < 10
  3. CIdPessoa < 4 e IdPessoa > 10
  4. DIdPessoa <= 4 e IdPessoa >= 10
  5. EIdPessoa no conjunto de valores {4,5,6,7,8,9,10}
Revelar gabarito e comentário

GabaritoE — IdPessoa no conjunto de valores {4,5,6,7,8,9,10}

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”.

Operador BETWEEN em SQL

Gabarito: letra E. O operador BETWEEN em SQL é inclusivo, ou seja, inclui tanto o valor inicial quanto o valor final do intervalo. Portanto, WHERE IdPessoa BETWEEN 4 AND 10 retorna os registros com IdPessoa no conjunto {4, 5, 6, 7, 8, 9, 10}. A alternativa E é a única que representa corretamente esse intervalo fechado.

O operador BETWEEN é um dos operadores de comparação mais utilizados em consultas SQL para filtrar dados dentro de um intervalo específico. Ele é uma forma mais legível e concisa de escrever uma condição com dois operadores de comparação (>= e <=). A sintaxe básica é coluna BETWEEN valor1 AND valor2, e o resultado inclui todos os registros onde o valor da coluna é maior ou igual a valor1 E menor ou igual a valor2.

A principal característica — e a pegadinha clássica desta questão — é que o BETWEEN é inclusivo nos dois extremos. Muitos candidatos, por analogia com a linguagem natural ou com outros contextos, assumem erroneamente que os extremos são excluídos, como se fosse um intervalo aberto (4, 10). No entanto, o padrão SQL define que BETWEEN 4 AND 10 é equivalente a IdPessoa >= 4 AND IdPessoa <= 10, incluindo tanto o 4 quanto o 10.

Para fixar: se a intenção fosse excluir os extremos, a consulta correta seria WHERE IdPessoa > 4 AND IdPessoa < 10, que retornaria apenas {5, 6, 7, 8, 9}. A banca explora exatamente essa confusão entre intervalo fechado (inclusivo) e intervalo aberto (exclusivo).

NÃO CAIA NESSA!

A banca explora a confusão entre intervalo fechado e aberto. O BETWEEN é inclusivo, incluindo os extremos. A alternativa B (IdPessoa > 4 e IdPessoa < 10) representa o intervalo aberto, que exclui os extremos — essa é a armadilha clássica. Lembre-se: BETWEEN 4 AND 10 = >= 4 AND <= 10.

Alternativa A — ❌ Incorreta

Afirma que serão listados os dados das pessoas com IdPessoa no conjunto {5, 6, 7, 8, 9}. Esse conjunto representa o intervalo aberto (4, 10), excluindo os extremos 4 e 10. Como o BETWEEN é inclusivo, os valores 4 e 10 também devem ser retornados. A alternativa confunde o intervalo fechado com o aberto.

Alternativa B — ❌ Incorreta

Afirma que serão listados os dados das pessoas com IdPessoa > 4 e IdPessoa < 10. Essa condição representa o intervalo aberto, excluindo os extremos. O BETWEEN 4 AND 10 é equivalente a IdPessoa >= 4 AND IdPessoa <= 10, que inclui os extremos. Portanto, a alternativa está incorreta por excluir os valores 4 e 10.

Alternativa C — ❌ Incorreta

Afirma que serão listados os dados das pessoas com IdPessoa < 4 e IdPessoa > 10. Essa condição é logicamente impossível, pois nenhum valor pode ser simultaneamente menor que 4 e maior que 10. A alternativa inverte completamente o sentido do operador BETWEEN, que busca valores dentro de um intervalo, não fora dele.

Alternativa D — ❌ Incorreta

Afirma que serão listados os dados das pessoas com IdPessoa <= 4 e IdPessoa >= 10. Essa condição também é logicamente impossível, pois nenhum valor pode ser simultaneamente menor ou igual a 4 e maior ou igual a 10. A alternativa inverte os operadores de comparação, trocando o BETWEEN (intervalo) por uma condição contraditória.

Alternativa E — ✅ Correta ⟵ GABARITO

Afirma que serão listados os dados das pessoas com IdPessoa no conjunto {4, 5, 6, 7, 8, 9, 10}. Esse conjunto representa exatamente o intervalo fechado [4, 10], incluindo os extremos. O operador BETWEEN 4 AND 10 é inclusivo, retornando todos os valores entre 4 e 10, inclusive. A alternativa está correta por representar fielmente o comportamento do operador.

Gabarito: letra E

Link permanente: /questoes/qa537840