SQL, or structured query language, lets us gather data from a database through queries. It also enables us to insert, update, and delete that data.

In this blog post, we will focus on how to fetch data and limit the results using SQL.

Why should you limit SQL query results?

A database is usually a huge collection of data. Sometimes we don't need to fetch all of the results. To limit the results, we can optimize the query.

Limiting query results is important for DB performance. Fetching a large result when it is not required incurs extra load on the database and impacts user experience.

How to limit query results in SQL

The syntax is different for SQL Server, Oracle, and MySQL for limiting the data.

  • MySQL uses LIMIT.
  • ORACLE uses FETCH FIRST .
  • MS Access and SQL Server use TOP.

We'll see examples of how each one works in detail below.

Demo Database

We have the following table named students with their details as you can see below:

ID Name Gender
1 Ryan M
2 Joanna F
3 Miranda Andersen F
4 Dalia 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

How to limit a query in MySQL

Below is the syntax for MySQL.

SELECT  (expression)
FROM 
    table_name
LIMIT 5;

As an example, we'll select the first 5 records from the table.

Let's use our table students for this demonstration.

-- fetch top 5 values from table

SELECT * FROM students
LIMIT 5;

Output:

image-7

How to Combine LIMIT with ORDER BY

When you combine LIMIT with ORDER BY, you can get more meaningful results. For example we can use this to find the top 5 students who scored greater than 70% on their exam.

Let's order our table students with the column name and choose the top 5 from the result. You can do that like this:

SELECT * FROM students
order by name
LIMIT 5;

Output:

image-13

How to limit results – Oracle syntax

Below is the equivalent syntax for our first example in Oracle.

SELECT * FROM students
FETCH FIRST 5 ROWS ONLY;

In older versions of Oracle, you can use ROWNUM to restrict the number of rows returned by a query.

Example:

SELECT * FROM 
students 
WHERE ROWNUM < 5;

How to limit results in SQL – MS Access syntax

Below is the equivalent syntax for our first example in MS Access.

SELECT TOP 5 * FROM students;

Wrapping up

The LIMIT functionality can be very powerful for query optimization when combined with sorting. Efficient queries are lighter on the system and swift for the user. It is always recommended to LIMIT the results where applicable.