Ao trabalhar com tabelas grandes, muitas vezes você não deseja recuperar cada linha. Às vezes, você precisa apenas dos primeiros registros ou deseja implementar a "paginação" (mostrando resultados na Página 1, Página 2, etc.). Para essas tarefas, usamos as cláusulas LIMIT e OFFSET.
A cláusula LIMIT é usada para especificar o número máximo de linhas que a consulta deve retornar.
SELECT coluna1, coluna2, ...
FROM nome_da_tabela
ORDER BY nome_da_coluna
LIMIT count;
count: O número máximo de linhas a serem retornadas.Nota: É altamente recomendável usar
LIMITem conjunto comORDER BY. Sem a ordenação, as "primeiras X linhas" podem ser quaisquer linhas, dependendo de como o mecanismo do banco de dados otimiza a consulta.
A cláusula OFFSET diz ao banco de dados para pular um número específico de linhas antes de começar a retornar os resultados.
SELECT coluna1, coluna2, ...
FROM nome_da_tabela
ORDER BY nome_da_coluna
LIMIT count OFFSET skip;
skip: O número de linhas a serem puladas antes de começar a retornar as linhas.A paginação é o processo de dividir um grande conjunto de resultados em páginas discretas. Este é o caso de uso mais comum para combinar LIMIT e OFFSET.
LIMIT 10 OFFSET 0 (Linhas 1-10)LIMIT 10 OFFSET 10 (Linhas 11-20)LIMIT 10 OFFSET 20 (Linhas 21-30)Esta consulta encontra os 5 filmes mais longos na tabela film.
SELECT title, length
FROM film
ORDER BY length DESC
LIMIT 5;
Esta consulta pula os primeiros 10 atores (ordenados por ID) e retorna os 5 seguintes.
SELECT actor_id, first_name, last_name
FROM actor
ORDER BY actor_id
LIMIT 5 OFFSET 10;
Principais conclusões desta lição:
LIMIT restringe o número de linhas no conjunto de resultados.OFFSET pula um número especificado de linhas antes de retornar os dados.LIMIT e OFFSET é a maneira padrão de implementar a paginação.ORDER BY com estas cláusulas para garantir resultados previsíveis.Na próxima lição, veremos como combinar WHERE, ORDER BY e LIMIT para construir consultas poderosas e precisas.