SQL, ou linguagem de consulta estruturada, nos permite coletar dados de um banco de dados por meio de consultas. Também nos permite inserir, atualizar e excluir esses dados.
Nesta postagem do blog, vamos nos concentrar em como buscar dados e limitar os resultados usando SQL.
Por que você deve limitar os resultados da consulta SQL?
Um banco de dados é geralmente uma enorme coleção de dados. Às vezes, não precisamos buscar todos os resultados. Para limitar os resultados, podemos otimizar a consulta.
Limitar os resultados da consulta é importante para o desempenho do banco de dados. Buscar um resultado grande quando não é necessário gera carga extra no banco de dados e afeta a experiência do usuário.
Como limitar os resultados da consulta no SQL
A sintaxe é diferente para SQL Server, Oracle e MySQL para limitar os dados.
- O MySQL usa
LIMIT
. - ORACLE usa
FETCH FIRST
. - MS Access e SQL Server usam
TOP
.
Veremos exemplos de como cada um funciona em detalhes abaixo.
Banco de dados de demonstração
Temos a seguinte tabela chamada
students
com seus detalhes como você pode ver abaixo:ID | Nome | Sexo |
---|---|---|
1 | Ryan | M |
2 | Joana | F |
3 | Miranda Andersen | F |
4 | Dália Mata | F |
5 | Lilianna Boyd | F |
6 | Lexie Sharp | M |
7 | Jazlene Cordova | F |
8 | Brycen Werner | M |
9 | Karissa Turner | F |
10 | Aisha Dodson | F |
11 | Aydin Reeves | M |
Como limitar uma consulta no MySQL
Abaixo está a sintaxe do MySQL.
SELECT (expression)
FROM
table_name
LIMIT 5;
Como exemplo, selecionaremos os 5 primeiros registros da tabela.
Vamos usar nossa tabela
students
para esta demonstração. -- fetch top 5 values from table
SELECT * FROM students
LIMIT 5;
Saída:
Como combinar LIMIT com ORDER BY
Ao combinar LIMIT com ORDER BY, você pode obter resultados mais significativos. Por exemplo, podemos usar isso para encontrar os 5 melhores alunos que pontuaram mais de 70% em seu exame.
Vamos ordenar nossa tabela
students
com a coluna name
e escolha os 5 primeiros do resultado. Você pode fazer assim:SELECT * FROM students
order by name
LIMIT 5;
Saída:
Como limitar resultados – sintaxe Oracle
Abaixo está a sintaxe equivalente para nosso primeiro exemplo no Oracle.
SELECT * FROM students
FETCH FIRST 5 ROWS ONLY;
Em versões mais antigas do Oracle, você pode usar ROWNUM para restringir o número de linhas retornadas por uma consulta.
Exemplo:
SELECT * FROM
students
WHERE ROWNUM < 5;
Como limitar resultados no SQL – Sintaxe do MS Access
Abaixo está a sintaxe equivalente para nosso primeiro exemplo no MS Access.
SELECT TOP 5 * FROM students;
Encerrando
A funcionalidade LIMIT pode ser muito poderosa para otimização de consultas quando combinada com classificação. Consultas eficientes são mais leves no sistema e rápidas para o usuário. É sempre recomendado LIMITAR os resultados quando aplicável.