Felizmente, em SQL, temos acesso à cláusula LIMIT que nos permite controlar o número de linhas retornadas em um determinado conjunto de resultados. Esse recurso é muito útil quando estamos lidando com um grande conjunto de dados e na verdade não precisamos da linha inteira, mas sim de um subconjunto dela. Isso pode ser para obter o layout dos dados ou a apresentação.
Neste tutorial, aprenderemos como podemos usar e trabalhar com a cláusula LIMIT em bancos de dados SQL para especificar o número de linhas que desejamos recuperar do banco de dados.
Requisitos:
Antes de nos aprofundarmos no funcionamento e no uso da cláusula LIMIT no SQL, vamos discutir alguns requisitos básicos para este tutorial.
Para acompanhar esta postagem, você precisará do seguinte:
- MySQL 8.0 e superior funciona com MySQL 5
- Acesso ao banco de dados de amostra Sakila
- Permissões para consultar as linhas do banco de dados de destino (acesso de leitura)
Com os requisitos fornecidos atendidos, podemos prosseguir com este tutorial.
LIMITE SQL
No SQL, a cláusula LIMIT nos permite restringir o número de linhas retornadas de uma determinada consulta SQL. Por exemplo, em uma instrução select, em vez de retornar todas as linhas da tabela que pode conter mais de 1.000 registros, podemos optar por visualizar apenas as 10 primeiras linhas.
O seguinte mostra a sintaxe básica da cláusula LIMIT em SQL:
SELECIONE col1, col2, ...
DE nome_tabela
LIMITE num_linhas;
Neste exemplo, estamos usando a cláusula LIMIT em conjunto com a instrução SELECT.
Pela sintaxe fornecida, “tbl_name” representa o nome da tabela da qual desejamos recuperar os dados.
O “num_rows” nos permite especificar o número máximo de linhas que são retornadas no conjunto de resultados.
Exemplo 1: Limite o número de linhas
A função mais comum e fundamental da cláusula LIMIT é definir o número máximo de linhas incluídas no conjunto de resultados.
Suponha que queiramos usar a tabela “film” do banco de dados de amostra Sakila. No entanto, como não queremos buscar todas as linhas associadas, podemos selecionar as primeiras 10 linhas conforme mostrado no exemplo de cláusula a seguir:
SELECIONE * DO filmeLIMITE 10 ;
Depois de executarmos a consulta fornecida, devemos obter a seguinte saída:
Neste exemplo, usamos a cláusula LIMIT para restringir o conjunto de resultados a 10 linhas. Isso busca as primeiras 10 linhas do resultado.
Exemplo 2: Usando o valor OFFSET
Em alguns casos, podemos querer pular ou omitir um número específico de linhas. Por exemplo, suponha que desejamos recuperar apenas cinco elementos, mas queremos começar na posição 20. Podemos usar o parâmetro OFFSET que nos permite informar à cláusula LIMIT em qual posição desejamos começar.
Isso é particularmente útil quando você precisa implementar a paginação em um grande conjunto de dados, conforme mostrado no exemplo a seguir:
SELECIONE film_id, título, ano de lançamento, `duração` FROM filmeLIMITE 10 DESVIO vinte ;;
Isso deve retornar 10 linhas começando na posição 20 da seguinte forma:
Como você pode ver no resultado fornecido, o início “film_id” começa na posição 21 e prossegue para a posição 30.
Exemplo 3: Usando a cláusula Order BY
Outro uso comum da cláusula LIMIT é em combinação com a cláusula ORDER BY. Isso nos permite recuperar um número específico de linhas baseadas em uma ordem específica. Isso pode incluir a classificação básica (crescente ou decrescente), etc.
Por exemplo, suponha que queiramos recuperar os 10 filmes mais longos da tabela “filmes”. Podemos usar a cláusula ORDER BY para classificar os valores com base no comprimento e então limitar as primeiras 10 linhas.
Um exemplo é o seguinte:
SELECIONE f.film_id, f.title, f.lengthDO filme f
ORDEM POR comprimento DESC
LIMITE 10 ;
Nesse caso, usamos a cláusula ORDER BY para ordenar as linhas em ordem decrescente (da maior para a menor) e, em seguida, buscamos as 10 primeiras linhas usando a cláusula LIMIT.
O conjunto de resultados é o seguinte:
Aí está!
Conclusão
Neste post, aprendemos os fundamentos e recursos avançados para trabalhar com a cláusula LIMIT em bancos de dados SQL.