Como limitar a quantidade de linhas que uma query retorna? Se você só quer os 5 primeiros estudantes, o funcionário com o maior salário ou uma lista com o top 10 de produtos, o comando LIMIT é o que você precisa!
Quando você trabalha com bancos de dados, o resultado de uma query pode ser um volume gigante de dados. Nessas situações, é importante limitar o tamanho do resultado pra:
- Diminuir a carga no servidor e na rede.
- Ficar mais fácil de analisar os dados sem ter que rolar páginas infinitas.
Uma analogia simples: imagina que você queria pagar uma bebida pra uma garota no bar, mas sem querer pagou pra todo mundo que tava lá. Impressiona, mas pra que tanta garota? Por isso, a gente aprende a pedir só o que precisa, e o LIMIT vai te ajudar nisso.
Sintaxe básica do LIMIT
Olha só como é:
SELECT coluna1, coluna2
FROM tabela
LIMIT quantidade_de_linhas;
Exemplo 1: Limitando registros
Bora supor que temos uma tabela students com 1000 linhas. Queremos ver só os 3 primeiros registros:
SELECT *
FROM students
LIMIT 3;
Resultado:
| id | name | age |
|---|---|---|
| 1 | Otto | 20 |
| 2 | Anna | 22 |
| 3 | Alex | 19 |
Bem simples: ao invés de uma lista gigante, a gente vê só três linhas. O LIMIT trouxe só o que a gente pediu.
Usos práticos do LIMIT
Exemplo 2: Top produtos
Você tá trabalhando com a tabela de produtos products e quer saber os nomes e preços dos cinco produtos mais caros. Primeiro a gente ordena pelo preço decrescente, depois limita o resultado:
SELECT product_name, price
FROM products
ORDER BY price DESC
LIMIT 5;
Resultado:
| product_name | price |
|---|---|
| iPhone 16 Pro Max | 1500 |
| MacBook Pro | 1200 |
| AirPods Pro | 300 |
| iPad Pro | 280 |
| Apple Watch | 250 |
Agora você vê só o top 5 dos produtos mais caros.
Como o LIMIT ajuda a testar queries
Quando você tá desenvolvendo queries SQL, provavelmente vai lidar com muitos dados. O LIMIT te ajuda a testar primeiro se a query tá certa, trazendo só um pedaço pequeno dos dados. Por exemplo:
SELECT *
FROM transactions_log
LIMIT 10;
Quando você tiver certeza que a lógica da query tá ok, pode tirar o LIMIT.
Detalhes do uso do LIMIT
1. LIMIT sem ORDER BY
Se você não colocar um ORDER BY, o LIMIT vai trazer os dados numa ordem aleatória — na real, na ordem que eles tão salvos na tabela. Normalmente não é problema, mas às vezes pode ser imprevisível.
Por exemplo:
SELECT name, age
FROM students
LIMIT 3;
Sem ORDER BY, você não tem como saber quais três registros vão aparecer no resultado.
Pra evitar isso, usa o ORDER BY:
SELECT name, age
FROM students
ORDER BY age DESC
LIMIT 3;
2. Usando junto com WHERE
Dá pra combinar WHERE pra filtrar linhas e LIMIT pra limitar o resultado. Isso é útil quando tem dados demais e você só quer os primeiros que batem com o filtro.
SELECT *
FROM students
WHERE age > 18
LIMIT 5;
Essa query vai trazer os 5 primeiros estudantes com mais de 18 anos.
3. Aplicação prática: ver a primeira página de dados
Se você tá mexendo com um sistema que mostra dados (tipo um app web), o LIMIT serve pra mostrar só a primeira página.
SELECT *
FROM employees
ORDER BY hire_date
LIMIT 10;
Aqui você pega os 10 primeiros funcionários, ordenados pela data de contratação.
Exemplo avançado: Combinando LIMIT com agregações
Imagina que você quer mostrar as três categorias de produtos mais populares:
SELECT category, COUNT(*) AS total_products
FROM products
GROUP BY category
ORDER BY total_products DESC
LIMIT 3;
Essa query primeiro agrupa os produtos por categoria, ordena pela quantidade e depois mostra só três linhas.
Como funciona o operador GROUP BY e a função COUNT() você vai ver nas próximas aulas.
Erros comuns ao usar LIMIT
Usando LIMIT, você pode esbarrar em alguns problemas:
"Ordem aleatória das linhas": se você esqueceu do ORDER BY, os dados podem vir numa ordem inesperada. Sempre coloca a ordem se isso for importante.
"Corte de dados importantes": por exemplo, se dois registros têm o mesmo valor na coluna de ordenação, o LIMIT pode trazer um resultado incompleto. Adiciona mais critérios de ordenação pra evitar isso.
SELECT *
FROM students
ORDER BY age DESC, name ASC
LIMIT 5;
"Combinação errada com WHERE". Às vezes o filtro do WHERE reduz tanto o resultado que o LIMIT nem faz diferença. Por exemplo, se o WHERE retorna só 2 linhas e o LIMIT é 10, você vai receber só 2 linhas mesmo.
"Depende do banco de dados". Alguns SGBDs têm sintaxe diferente pra limitar linhas (tipo TOP no SQL Server). O PostgreSQL usa LIMIT mesmo.
Pra que serve o LIMIT na vida real?
Interfaces com muitos registros: imagina uma loja online, onde você vê os produtos por página. A primeira página pode ter só 10 registros, e o LIMIT faz isso acontecer.
Relatórios: muitas vezes você só quer ver o topo dos dados (tipo top 5 funcionários, líderes de vendas, estudantes com as melhores notas).
Testar e otimizar queries: ao invés de mexer com milhões de linhas, você pode testar rapidinho numa amostra pequena.
GO TO FULL VERSION