Questão de Banco de Dados — Consultas e Comandos em SQL — FUNDATEC 2023
Banco de Dados›Consultas 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:
AIdPessoa no conjunto de valores {5,6,7,8,9}
BIdPessoa > 4 e IdPessoa < 10
CIdPessoa < 4 e IdPessoa > 10
DIdPessoa <= 4 e IdPessoa >= 10
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.