CodeGym /Cursos /SQL SELF /Limitando a quantidade de linhas (LIMIT) e controlando o ...

Limitando a quantidade de linhas (LIMIT) e controlando o resultado

SQL SELF
Nível 3 , Lição 0
Disponível

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:

  1. Diminuir a carga no servidor e na rede.
  2. 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.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION