No contexto do PostgreSQL, analise o comando SQL a seguir. select * from public."teste" offset 2 limit 1 Assinale o efeito das cláusulas OFFSET e LIMIT sobre a execução do comando acima.
- A)Ignorar as duas primeiras linhas e retornar, no máximo, uma linha.
Certa: OFFSET 2 descarta as duas primeiras linhas e LIMIT 1 restringe a saída a, no máximo, uma linha.
- B)Incluir uma margem dupla no início de cada e limitar a primeira coluna ao tamanho default.
Errada: isso não tem relação com margens, nem com tamanho de coluna, e não existe esse efeito para OFFSET e LIMIT.
- C)Limitar o tempo de execução entre 2 e 3 segundos, e exibir o resultado parcial.
Errada: as cláusulas não controlam tempo de execução, e sim quantidade de linhas retornadas.
- D)Ordenar pelas colunas “offset” em ordem decrescente, seguida da coluna “limit” em ordem crescente.
Errada: OFFSET e LIMIT não fazem ordenação; para isso seria necessário ORDER BY.
- E)Posicionar a coluna “offset” na segunda coluna do resultado, e a coluna “limit”, na primeira.
Errada: essas cláusulas não alteram posição de colunas no resultado, apenas a quantidade de linhas exibidas.
Gabarito: A
No PostgreSQL, as cláusulas LIMIT e OFFSET servem para paginar resultados. Pense nelas como um filtro de “quantas linhas eu quero” e “a partir de qual linha eu começo a olhar”. O OFFSET pula as primeiras linhas do resultado, e o LIMIT define o máximo de linhas que será retornado. No comando da questão, `offset 2 limit 1` faz exatamente isso: ignora as duas primeiras linhas do conjunto de resultados e, depois disso, traz no máximo 1 linha. Se a consulta tiver mais linhas, elas continuam existindo, mas não aparecem nessa execução. Se tiver menos linhas do que o esperado, o PostgreSQL simplesmente devolve o que for possível. Esse uso é padrão em SQL e muito comum em paginação de telas e relatórios. A lógica é simples: primeiro você “anda” no resultado com OFFSET, depois “corta” o tamanho da amostra com LIMIT. Não há relação com tempo de execução, ordenação de colunas ou formatação do resultado. Por isso, o gabarito é a letra A: o comando pula as duas primeiras linhas e retorna, no máximo, uma linha. Em PostgreSQL, essa sintaxe é amplamente aceita, inclusive na forma clássica `LIMIT ... OFFSET ...` ou na forma usada na questão `OFFSET ... LIMIT ...`.