Pular para o conteúdo principal

Questão de Banco de Dados — MySQL — FGV 2023

Banco de DadosMySQL
Código
fg161167
Banca
FGV
Órgão
Pref Niterói
Ano
2023
Cargo
Ana ( )

Figura 1

Nas duas questões a seguir, considere a tabela relacional T cuja instância é exibida abaixo.

 

A instalação está configurada para o tratamento de valores NULL como valores desconhecidos (unknown).

 

Tabela T

A B C
3 6 10
3 6 10
1 NULL 10
3 6 NULL
3 6 5

Considere uma tabela intitulada TESTE, criada numa instalação MySQL, cuja instância possui dez linhas, e analise o comando a seguir.

 

SELECT * FROM TESTE ORDER BY 1 LIMIT 5,2

Na execução desse comando, é correto afirmar que, do conjunto de linhas coletadas no resultado, somente serão exibidas:


  1. Aas cinco primeiras linhas e as duas últimas linhas;
  2. Bcinco linhas a partir da segunda linha;
  3. Ccinco linhas a partir da terceira linha;
  4. Dduas linhas a partir da quinta linha;
  5. Eduas linhas a partir da sexta linha.
Revelar gabarito e comentário

GabaritoC — cinco linhas a partir da terceira linha;

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áusula LIMIT e OFFSET no MySQL

Gabarito: letra E. O comando SELECT * FROM TESTE ORDER BY 1 LIMIT 5,2 exibe duas linhas a partir da sexta linha do resultado ordenado. A sintaxe LIMIT offset, quantidade faz com que o MySQL pule as 5 primeiras linhas (offset = 5) e retorne as próximas 2 linhas (quantidade = 2). Como a ordenação é pela primeira coluna (ORDER BY 1), as linhas são ordenadas antes da aplicação do limite.

A cláusula LIMIT no MySQL é usada para restringir o número de linhas retornadas por uma consulta. Sua sintaxe mais comum é LIMIT quantidade, que retorna as primeiras quantidade linhas. Porém, quando usamos dois argumentos — LIMIT offset, quantidade — o primeiro número indica quantas linhas devem ser puladas (offset) e o segundo indica quantas linhas devem ser retornadas a partir desse ponto. É importante notar que o offset é baseado em zero: LIMIT 0, 2 retorna as duas primeiras linhas, LIMIT 1, 2 retorna as linhas 2 e 3, e assim por diante.

No comando da questão, LIMIT 5,2 significa que as 5 primeiras linhas do resultado ordenado são descartadas, e as 2 linhas seguintes (a 6ª e a 7ª) são exibidas. A tabela TESTE possui 10 linhas, então há linhas suficientes para que o comando retorne as 2 linhas solicitadas. A ordenação por ORDER BY 1 é feita antes da aplicação do LIMIT, garantindo que o resultado seja previsível.

A pegadinha desta questão está na interpretação da sintaxe LIMIT offset, quantidade. Muitos candidatos confundem o primeiro número com a quantidade de linhas a retornar, marcando a alternativa C (cinco linhas a partir da terceira linha). No entanto, o primeiro número é o offset (quantas linhas pular), e o segundo é a quantidade de linhas a retornar. Portanto, LIMIT 5,2 retorna 2 linhas, não 5.

NÃO CAIA NESSA!

A banca tenta fazer o candidato inverter os argumentos do LIMIT. O primeiro número é o offset (linhas a pular), o segundo é a quantidade (linhas a retornar). Aqui, LIMIT 5,2 significa pular 5 e retornar 2 — não o contrário. Fique atento: a ordem é sempre LIMIT offset, quantidade.

  1. 1ORDER BY 1 ordena
  2. 2Pula 5 (offset)
  3. 3Retorna 2 (quantidade)
  4. 4Exibe 6ª e 7ª linhas
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Afirma que serão exibidas as cinco primeiras linhas e as duas últimas linhas. Isso não corresponde ao comportamento do LIMIT 5,2, que não retorna as primeiras linhas nem as últimas, mas sim um intervalo específico após o offset. O comando não tem nenhuma lógica de "primeiras e últimas" — ele simplesmente pula 5 e retorna 2.

Alternativa B — ❌ Incorreta

Diz que serão exibidas cinco linhas a partir da segunda linha. Isso confunde o offset com a quantidade. O LIMIT 5,2 não retorna 5 linhas; retorna apenas 2. Além disso, o offset é 5, não 1 (que seria a segunda linha). A alternativa mistura os dois números de forma incorreta.

Alternativa C — ❌ Incorreta

Afirma que serão exibidas cinco linhas a partir da terceira linha. Aqui, o candidato interpreta o primeiro número (5) como quantidade de linhas a retornar, e o segundo (2) como offset. Mas a ordem correta é LIMIT offset, quantidade, então o offset é 5 e a quantidade é 2. Portanto, não são 5 linhas, e o ponto de partida não é a terceira linha.

Alternativa D — ❌ Incorreta

Diz que serão exibidas duas linhas a partir da quinta linha. O erro está no offset: o comando pula 5 linhas, então a primeira linha retornada é a 6ª, não a 5ª. O offset é baseado em zero, mas a contagem das linhas no resultado é a partir de 1. LIMIT 5,2 pula as linhas 1 a 5 e retorna as linhas 6 e 7.

Alternativa E — ✅ Correta ⟵ GABARITO

Esta é a alternativa correta. O comando LIMIT 5,2 pula as 5 primeiras linhas do resultado ordenado e retorna as próximas 2 linhas, ou seja, a 6ª e a 7ª linha. A ordenação por ORDER BY 1 é aplicada antes do limite, garantindo que o resultado seja consistente. Como a tabela TESTE tem 10 linhas, há linhas suficientes para retornar as 2 solicitadas.

Gabarito: letra E

Link permanente: /questoes/fg161167