LIMIT trong SQL: Hướng dẫn chi tiết từ A - Z


  • 2025-03-03 09:00:26

Việc xử lý hiệu quả các tập dữ liệu khổng lồ là một yếu tố then chốt. LIMIT trong SQL mệnh danh là công cụ đắc lực giúp kiểm soát lượng dữ liệu truy xuất, tối ưu hóa hiệu suất truy vấn và nâng cao trải nghiệm người dùng. Hãy cùng AntBook hướng dẫn cách sử dụng LIMIT trong SQL một cách chi tiết với bài viết dưới đây!

1. Hướng dẫn cách sử dụng LIMIT trong SQL Server để giới hạn số dòng

Lệnh LIMIT được sử dụng để giới hạn số lượng dòng trả về trong kết quả truy vấn. Đây là một cách hiệu quả để lấy một phần dữ liệu từ bảng mà không cần truy xuất toàn bộ.

Cú pháp:

SELECT column_name(s)

FROM table_name

WHERE condition

LIMIT number;

Giả sử ta có bảng Student như sau:

ROLLNO

NAME

GRADE

12001

Aditya

9

12002

Sahil

6

12003

Hema

8

12004

Robin

9

12005

Sita

7

12006

Anne

10

12007

Yusuf

7

12008

Alex

5

Truy vấn để lấy 5 sinh viên đầu tiên:

SELECT *

FROM Student

LIMIT 5;

Kết quả:

ROLLNO

NAME

GRADE

12001

Aditya

9

12002

Sahil

6

12003

Hema

8

12004

Robin

9

12005

Sita

7

LIMIT trong SQL

Sử dụng lệnh LIMIT trong SQL Server để giới hạn số dòng hiệu quả

2. Sử dụng LIMIT kết hợp với ORDER BY trong SQL

Nếu bạn muốn lấy 3 sinh viên có điểm cao nhất, bạn có thể sắp xếp theo điểm giảm dần (ORDER BY Grade DESC) và giới hạn kết quả với LIMIT 3.

Cú pháp truy vấn:

SELECT * FROM Student

ORDER BY Grade DESC

LIMIT 3;

Kết quả:

ROLLNO

NAME

GRADE

12006

Anne

10

12001

Aditya

9

12004

Robin

9

3. Cách sử dụng LIMIT OFFSET SQL Server

Lệnh OFFSET thường được sử dụng kết hợp với LIMIT để bỏ qua một số hàng đầu tiên trong tập kết quả và chỉ lấy một phần dữ liệu mong muốn. Điều này đặc biệt hữu ích khi phân trang dữ liệu.

Cú pháp cơ bản của LIMIT và OFFSET:

SELECT *

FROM tên_bảng

LIMIT số_lượng_hàng OFFSET vị_trí_bắt_đầu;

Trong đó:

  • số_lượng_hàng: Số lượng hàng muốn lấy.
  • vị_trí_bắt_đầu: Số lượng hàng bị bỏ qua trước khi lấy dữ liệu.

Ví dụ:

Giả sử chúng ta có bảng members:

ID

NAME

AGE

1

John

25

2

Alice

23

3

Bob

28

4

Charlie

26

5

David

30

 

Truy vấn để lấy 2 thành viên, bắt đầu từ hàng thứ 2 (OFFSET = 1):

SELECT *

FROM members

LIMIT 2 OFFSET 1;

Kết quả trả về:

LIMIT trong SQL

Chạy đoạn script trên cho kết quả như trên

Ở đây, OFFSET = 1 có nghĩa là bỏ qua hàng đầu tiên, và LIMIT 2 sẽ lấy 2 hàng tiếp theo.

4. Hướng dẫn sử dụng LIMIT ALL trong SQL

Lệnh LIMIT ALL được sử dụng để trả về toàn bộ dữ liệu từ bảng, tương đương với việc không sử dụng LIMIT.

Cú pháp:

SELECT *

FROM Student

LIMIT ALL;

LIMIT trong SQL

Lệnh LIMIT ALL sử dụng trả toàn bộ dữ liệu từ bảng

5. Lợi ích hàm LIMIT trong MySQL là gì?

Khi truy vấn cơ sở dữ liệu, bạn có thể nhận được hàng ngàn, thậm chí hàng triệu kết quả. LIMIT cho phép bạn xác định số lượng hàng tối đa được trả về, mang lại nhiều lợi ích thiết thực:

  • Tối ưu hóa hiệu suất: LIMIT giúp giảm tải cho cơ sở dữ liệu bằng cách chỉ truy xuất lượng dữ liệu cần thiết, từ đó tăng tốc độ xử lý truy vấn.
  • Phân trang: LIMIT là nền tảng cho kỹ thuật phân trang dữ liệu, cho phép hiển thị dữ liệu theo từng phần nhỏ, giúp người dùng dễ dàng duyệt và tìm kiếm thông tin.
  • Lấy mẫu dữ liệu: LIMIT cho phép nhanh chóng truy xuất một tập hợp con dữ liệu để kiểm tra, phân tích hoặc thử nghiệm.
  • Kiểm soát bộ nhớ: LIMIT giúp ngăn chặn việc sử dụng quá nhiều bộ nhớ khi truy xuất dữ liệu, đặc biệt hữu ích khi làm việc với các tập dữ liệu lớn.

LIMIT trong SQL

LIMIT giúp giảm tải cho cơ sở dữ liệu giúp dễ dàng duyệt và tìm kiếm dữ liệu

Tuy nhiên, cần lưu ý rằng LIMIT không phải là một phần của chuẩn SQL, mà là một phần mở rộng của các nhà cung cấp cụ thể. Do đó, không phải tất cả các hệ quản trị CSDL đều hỗ trợ LIMIT. Trước khi sử dụng, bạn nên kiểm tra xem hệ quản trị CSDL của mình có hỗ trợ LIMIT hay không.

6. So sánh LIMIT với các kỹ thuật phân trang khác

Bên cạnh LIMIT, SQL còn cung cấp các kỹ thuật phân trang khác như OFFSET, FETCH và ROW_NUMBER(). Dưới đây là bảng so sánh chi tiết:

Kỹ thuật

Cú pháp

Ưu điểm

Nhược điểm

Hệ quản trị CSDL hỗ trợ

LIMIT

LIMIT number_of_rows

Đơn giản, dễ sử dụng

Không phải là một phần của chuẩn SQL

MySQL, PostgreSQL, SQLite

OFFSET

OFFSET offset_value

Kết hợp với LIMIT để phân trang

Không có nhược điểm lớn

MySQL, PostgreSQL, SQLite

FETCH

OFFSET offset_value ROWS FETCH NEXT number_of_rows ROWS ONLY

Là một phần của chuẩn SQL, hỗ trợ nhiều tính năng hơn

Cú pháp phức tạp hơn

PostgreSQL, Oracle, SQL Server

ROW_NUMBER()

ROW_NUMBER() OVER (PARTITION BY … ORDER BY …)

Linh hoạt, cho phép đánh số hàng trong phân vùng

Cú pháp có thể phức tạp

SQL Server, PostgreSQL, Oracle, MySQL, SQLite, IBM Db2, MariaDB

Lệnh LIMIT trong SQL là một công cụ mạnh mẽ giúp bạn kiểm soát lượng dữ liệu trả về, tối ưu hóa hiệu suất truy vấn và hỗ trợ phân trang hiệu quả. Dù bạn đang làm việc với danh sách sản phẩm, hồ sơ nhân viên hay báo cáo dữ liệu lớn, việc sử dụng LIMIT đúng cách có thể giúp hệ thống của bạn chạy nhanh hơn và mượt mà hơn.

LIMIT trong SQL

So sánh LIMIT với OFFSET, FETCH và ROW_NUMBER()

Để khám phá thêm các kỹ thuật phân tích dữ liệu thực tế và áp dụng chúng vào công việc, đừng bỏ lỡ bộ sách Data Analysis. Bộ sách này từ AntBook sẽ cung cấp cho bạn những ví dụ và bài tập thực hành sát với thực tế, giúp bạn nhanh chóng nâng cao kỹ năng phân tích và đưa ra những quyết định sáng suốt dựa trên dữ liệu.