curso
Como usar melhor a cláusula LIMIT do SQL
A cláusula SQL LIMIT
controla o número de registros retornados em uma consulta. Como o nome sugere, a cláusula LIMIT
restringe as linhas mostradas após a filtragem dos dados. Essa cláusula é importante ao lidar com grandes conjuntos de dados, mas você deseja recuperar apenas partes específicas dos dados.
Se você é um aspirante a profissional de dados, recomendo fortemente que faça os cursos Introduction to SQL e SQL Fundamentals da DataCamp para adquirir habilidades relevantes em SQL para análise de dados.
A resposta curta: O que é a cláusula LIMIT do SQL?
A cláusula SQL LIMIT
é uma cláusula útil que especifica o número de registros que uma consulta deve retornar após a filtragem dos dados. Essa técnica permite que você retorne apenas um subconjunto de dados para exibição ou análise. Portanto, a cláusula LIMIT
é importante para dividir dados grandes em partes menores na paginação de dados. Ele também é usado para otimizar o desempenho, a fim de evitar consultas grandes que possam reduzir o desempenho do banco de dados.
O exemplo abaixo mostra o uso básico da cláusula LIMIT
para mostrar apenas os 10 principais registros da tabela employees
.
-- Select all columns from the employees table
-- and limit the number of returned rows to 10.
SELECT *
FROM employees
LIMIT 10;
Sintaxe da cláusula LIMIT do SQL
A cláusula SQL LIMIT
é incluída na instrução SELECT
para controlar o número de registros retornados de uma consulta. A cláusula LIMIT
é adicionada ao final da declaração para filtrar os registros conforme especificado. Você também pode consultar a Folha de dicas básicas de SQL da DataCamp para saber mais sobre LIMIT
e outras cláusulas comuns de SQL.
-- Select columns column1, column2, ... from the table table_name
SELECT column1, column2, ...
FROM table_name
-- Limit the number of rows returned to number_of_rows
LIMIT number_of_rows;
Aqui está a cláusula LIMIT
em um exemplo prático. A consulta mostrará apenas 10 registros da tabela employees
das colunas first_name
, last_name
e department
.
-- Select first_name, last_name, and department from the employees table
SELECT first_name, last_name, department
FROM employees
-- Limit the number of rows returned to 10
LIMIT 10;
Às vezes, você pode usar a cláusula opcional OFFSET
para ignorar um número específico de linhas antes de exibir as linhas desejadas. A sintaxe do site OFFSET
é mostrada abaixo.
-- Select column_names from the table table_name
SELECT column_names
FROM table_name
-- Arrange the results in ascending order based on column_name
ORDER BY column_name
-- Limit the number of rows returned to number_of_rows, starting from offset_value
LIMIT number_of_rows OFFSET offset_value;
Na consulta SQL acima, o number_of_rows
indica o número de linhas a serem retornadas, enquanto o offset_value
mostra o número de linhas que a consulta deve ignorar antes de retorná-las.
O exemplo abaixo mostra como você pode usar as cláusulas SQL OFFSET
e LIMIT
para controlar o número de linhas a serem retornadas. Enquanto a cláusula LIMIT
especifica o retorno de 10 registros, a cláusula OFFSET
na consulta ignora os primeiros 5 registros. Portanto, os resultados exibirão registros da 6ª linha dos dados até a 15ª linha (10 linhas).
-- Select first_name, last_name, and department from the employees table
SELECT first_name, last_name, department
FROM employees
-- Limit the number of rows returned to 10, starting from the 6th row (offset of 5)
LIMIT 10 OFFSET 5;
Pontos importantes a serem lembrados sobre a cláusula LIMIT do SQL
Entender como implementar corretamente a cláusula LIMIT
e suas variações em diferentes bancos de dados SQL é fundamental para otimizar o desempenho da consulta e garantir a recuperação precisa dos dados. Vamos dar uma olhada em alguns pontos importantes.
A colocação da cláusula LIMIT no comando SELECT
A cláusula LIMIT
geralmente é colocada no final da declaração SELECT
, após a cláusula FROM
. Se você usar outras cláusulas de agregação opcionais, como as cláusulas WHERE
, GROUP BY
e ORDER
BY, certifique-se de que a cláusula LIMIT
esteja no final da consulta.
-- Select all columns from the employees table
SELECT *
FROM employees
-- Limit the number of rows returned to 5, starting from the 21st row (offset of 20)
LIMIT 10 OFFSET 20;
Combinação de LIMIT com a cláusula ORDER BY
A cláusula LIMIT
pode ser combinada com o agregado ORDER BY
para que você obtenha resultados consistentes e previsíveis. Essa técnica garante que os dados sejam armazenados em uma ordem específica antes de serem recuperados. No exemplo abaixo, ordenamos os dados pelo endereço hire_date
em ordem decrescente antes de mostrar as linhas filtradas.
-- Select all columns from the employees table
SELECT *
FROM employees
-- Arrange the results in descending order based on hire_date
ORDER BY hire_date DESC
-- Limit the number of rows returned to 10
LIMIT 10;
Eu recomendaria que você fizesse o curso de carreira Associate Data Analyst in SQL da DataCamp e o curso Reporting in SQL para saber mais sobre funções agregadas e suas aplicações na análise de dados.
Variações e sintaxe do SQL LIMIT nos bancos de dados
Os exemplos acima mostram o uso das cláusulas SQL LIMIT
em bancos de dados PostgreSQL, SQLite e MySQL compatíveis.
Para obter resultados semelhantes no SQL Server, considere usar a função TOP
para controlar o número de registros a serem retornados a partir de determinados dados.
-- Select the top 10 records of first_name, last_name from the employees table
SELECT TOP 10 first_name, last_name
FROM employees
-- Arrange the results in descending order based on hire_date
ORDER BY hire_date DESC;
Da mesma forma, o banco de dados Oracle suporta o uso do site FETCH FIRST n ROWS ONLY
para controlar o número de registros a serem retornados em uma consulta.
-- Select the first_name and last_name columns from the employees table
SELECT first_name, last_name
FROM employees
-- Order the results in descending order based on hire_date
ORDER BY hire_date DESC
-- Limit the number of rows returned to the first 10 rows
FETCH FIRST 10 ROWS ONLY;
LIMIT e OFFSET na paginação
O SQL LIMIT
e o OFFSET
geralmente são combinados para que você obtenha uma paginação de dados eficiente. Essa técnica garante que grandes conjuntos de dados sejam divididos em partes menores e gerenciáveis para exibição adequada.
No exemplo abaixo, a cláusula LIMIT
e OFFSET
limita as linhas exibidas a 10
, mas começa na 21ª linha.
-- Select all columns from the employees table
SELECT *
-- Arrange the results in descending order based on hire_date
FROM employees
ORDER BY hire_date DESC
-- Limit the number of rows returned to 10, starting from the 21st row (offset of 20)
LIMIT 10 OFFSET 20;
Casos de uso comuns da cláusula LIMIT do SQL
- Paginação: Quando combinada com a cláusula
OFFSET
, a cláusulaLIMIT
é usada em aplicativos da Web para paginação de dados. Essa técnica exibe dados em pedaços/subconjuntos menores, como em diferentes páginas da Web. - Otimização do desempenho: A cláusula
LIMIT
pode melhorar o desempenho da consulta, reduzindo a carga nos servidores do banco de dados. Essa técnica é obtida buscando e retornando subconjuntos de dados menores simultaneamente. - Amostragem de dados: A cláusula
LIMIT
é útil na análise de dados, buscando subconjuntos de dados menores. Esse método ajuda os analistas de dados a melhorar o desempenho durante a análise.
Limitações do comando SQL Limit
As limitações da cláusula SQL LIMIT
incluem o seguinte:
- Falta de suporte de todos os bancos de dados: A cláusula
LIMIT
não é compatível com todos os bancos de dados. Por exemplo, a cláusulaLIMIT
não está disponível nos bancos de dados SQL Server e Oracle. - Problemas de desempenho com valores grandes de OFFSET: O uso de valores
OFFSET
grandes pode tornar os servidores de banco de dados mais lentos, resultando em uma execução de consulta mais lenta.
Para evitar as limitações de diferentes bancos de dados, considere usar as seguintes alternativas.x
A cláusula TOP no SQL Server
A cláusula TOP
fornece os mesmos resultados que a cláusula LIMIT
para o banco de dados do SQL Server.
-- Select the top 10 rows from the employees table ordered by hire_date
SELECT TOP 10 first_name, last_name
FROM employees
ORDER BY hire_date DESC;
FETCH FIRST n ROWS ONLY no SQL Server e no DB2
O FETCH FIRST n ROWS ONLY
também retorna resultados semelhantes aos da cláusula LIMIT
para os bancos de dados SQL Server e DB2.
-- Select the first 10 rows from the employees table ordered by hire_date
SELECT first_name, last_name
FROM employees
ORDER BY hire_date DESC
FETCH FIRST 10 ROWS ONLY;
ROWNUM no Oracle
No banco de dados Oracle, a função ROWNUM
controla o número de registros retornados dos dados. A função é combinada em uma subconsulta para filtrar os dados conforme necessário.
-- Select the top 10 rows from the employees table ordered by hire_date
SELECT * FROM (
SELECT first_name, last_name
FROM employees
ORDER BY hire_date DESC
) WHERE ROWNUM <= 10;
Conclusão
A cláusula SQL LIMIT
é importante para restringir o número de linhas exibidas após a recuperação de dados de um banco de dados. Como profissional de dados, é importante que você entenda os diferentes casos de uso da cláusula LIMIT
para análise e manipulação de dados. Da mesma forma, você deve considerar o suporte do banco de dados para a cláusula LIMIT
e usar outras funções alternativas ao usar bancos de dados incompatíveis, como o SQL Server e o Oracle.
Para entender as diferentes aplicações da cláusula SQL LIMIT
, você deve continuar praticando com diferentes conjuntos de dados. Os cursos Learn SQL e Intermediate SQL da DataCamp são apropriados para que você adquira habilidades avançadas em SQL. Também recomendo que você faça a Certificação SQL Associate da DataCamp para demonstrar seu conhecimento sobre o uso de SQL e se destacar entre outros profissionais de dados.
Perguntas frequentes
Qual é o uso da função SQL LIMIT?
A função SQL LIMIT
controla o número de linhas retornadas dos dados filtrados.
Qual é o principal uso do SQL LIMIT?
SQL LIMIT
é usado principalmente para paginação de dados em páginas da Web para restringir o número de linhas exibidas.
A cláusula SQL LIMIT é compatível com todos os bancos de dados?
A função SQL LIMIT
é compatível apenas com os bancos de dados PostgreSQL, MySQL e SQLite. A cláusula não é compatível com os bancos de dados SQL Server e Oracle.
Qual é a alternativa para a cláusula LIMIT nos bancos de dados sem suporte?
A alternativa à função SQL LIMIT no SQL Server são as cláusulasTOP e FETCH FIRST n ROWS ONLY. O banco de dados Oracle usa a função ROWNUM como alternativa ao LIMIT.
Qual é o uso do OFFSET na cláusula LIMIT do SQL?
Você pode usar OFFSET
para especificar o número de linhas a serem ignoradas antes de retornar o número específico de linhas da cláusula LIMIT
cláusula.
Aprenda SQL com a DataCamp
curso
Unindo dados no SQL
curso