Questão de Banco de Dados — PostgreSQL — VUNESP 2023
Banco de Dados›PostgreSQL
Código
vu196519
Banca
VUNESP
Órgão
CM SBO
Ano
2023
Cargo
Ana Sis ( )
Considere o seguinte comando SQL emitido a partir do sistema gerenciador de banco de dados PostgreSQL 14.4: SELECT * FROM Tab1 LIMIT 25 OFFSET 10; Supondo que a tabela Tab1 tenha 100 registros, esse comando terá como resultado exibir
A10 registros da tabela Tab1, desprezando os 25 primeiros registros dessa tabela.
B25 registros da tabela Tab1, desprezando os 10 primeiros registros dessa tabela.
C35 registros da tabela Tab1, desprezando os 10 primeiros registros dessa tabela.
D90 registros da tabela Tab1, desprezando os 10 últimos registros dessa tabela.
E90 registros da tabela Tab1, desprezando os 10 primeiros registros dessa tabela.
Revelar gabarito e comentário▾
GabaritoB — 25 registros da tabela Tab1, desprezando os 10 primeiros registros dessa tabela.
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”.
Cláusulas LIMIT e OFFSET no PostgreSQL
Gabarito: letra B. O comando SELECT * FROM Tab1 LIMIT 25 OFFSET 10 exibe 25 registros da tabela, desprezando os 10 primeiros. A cláusula OFFSET define quantas linhas serão puladas do início do resultado, e a cláusula LIMIT define quantas linhas serão retornadas a partir desse ponto — é exatamente essa combinação que a alternativa B descreve.
O LIMIT e o OFFSET são cláusulas de paginação de resultados em consultas SQL. Elas não fazem parte do padrão SQL original, mas foram amplamente adotadas por SGBDs como PostgreSQL, MySQL e SQLite. O LIMIT restringe a quantidade de linhas retornadas pela consulta, enquanto o OFFSET indica quantas linhas devem ser ignoradas antes de começar a retornar os resultados. A ordem de execução lógica é: primeiro o banco aplica os filtros (WHERE), depois ordena (ORDER BY), em seguida pula as linhas indicadas no OFFSET e, por fim, limita a quantidade de linhas retornadas pelo LIMIT.
No comando da questão, a tabela Tab1 tem 100 registros. O OFFSET 10 faz o banco ignorar os 10 primeiros registros do resultado. Em seguida, o LIMIT 25 faz o banco retornar apenas 25 registros, começando do 11º registro (já que os 10 primeiros foram pulados). Portanto, o resultado final são 25 registros, do 11º ao 35º. Como a tabela tem 100 registros, há registros suficientes para preencher o limite, então não há nenhuma peculiaridade de "estouro" — o resultado é exatamente 25 linhas.
A pegadinha clássica dessa questão é inverter o papel das duas cláusulas: o candidato pode pensar que o LIMIT pula registros e o OFFSET limita a quantidade, ou que os números se somam (10 + 25 = 35). Nenhuma dessas leituras está correta. O LIMIT é sempre a quantidade de linhas retornadas, e o OFFSET é sempre a quantidade de linhas puladas do início. Guarde essa relação: LIMIT = quantos vêm; OFFSET = quantos ficam para trás.
1WHERE (filtra)
2ORDER BY (ordena)
3OFFSET (pula 10)
4LIMIT (retorna 25)
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Afirma que o comando exibe 10 registros, desprezando os 25 primeiros. Há uma inversão completa dos valores: o LIMIT 25 determina que serão exibidos 25 registros, não 10, e o OFFSET 10 determina que serão desprezados os 10 primeiros, não os 25. A alternativa troca os papéis das duas cláusulas.
Alternativa B — ✅ Correta ⟵ GABARITO
Descreve exatamente o comportamento do comando: o LIMIT 25 limita o resultado a 25 registros, e o OFFSET 10 despreza os 10 primeiros registros da tabela. A ordem de aplicação é: primeiro pula 10, depois retorna 25. Como a tabela tem 100 registros, há linhas suficientes para retornar os 25 solicitados.
Alternativa C — ❌ Incorreta
Afirma que o comando exibe 35 registros. Esse número seria o resultado se as cláusulas fossem somadas (10 + 25), mas elas não funcionam assim. O LIMIT e o OFFSET são independentes: o OFFSET pula linhas e o LIMIT limita a quantidade retornada. Não há soma entre eles.
Alternativa D — ❌ Incorreta
Afirma que o comando exibe 90 registros, desprezando os 10 últimos. O número 90 seria o resultado se o LIMIT fosse 90, mas o comando usa LIMIT 25. Além disso, o OFFSET sempre pula linhas do início do resultado, nunca do final. A alternativa erra tanto na quantidade quanto na posição dos registros desprezados.
Alternativa E — ❌ Incorreta
Afirma que o comando exibe 90 registros, desprezando os 10 primeiros. O OFFSET 10 está correto ao desprezar os 10 primeiros, mas o LIMIT 25 limita o resultado a 25 registros, não a 90. A alternativa acerta o OFFSET, mas erra o LIMIT.
PEGA ESSA DICA!
Para questões de LIMIT e OFFSET, leia o comando da direita para a esquerda: primeiro o OFFSET (quantas linhas pular), depois o LIMIT (quantas linhas retornar). Isso evita a confusão mais comum — inverter os papéis ou somar os valores.