Bài này cafedev chia sẻ cho ace về cách sử dụng TOP, LIMIT or ROWNUM, TOP PERCENT với câu lệnh SELECT trong SQL để lấy ra dữ liệu theo ý muốn của mình.

1.Câu lệnh SELECT TOP

Mệnh đề SELECT TOP được sử dụng để chỉ định số lượng dữ liệu sẽ trả về.

Mệnh đề SELECT TOP hữu ích trên các bảng lớn với hàng nghìn dữ liệu. Trả lại một số lượng lớn bản ghi có thể ảnh hưởng đến hiệu suất.

Lưu ý: Không phải tất cả các hệ thống cơ sở dữ liệu đều hỗ trợ mệnh đề SELECT TOP. MySQL hỗ trợ mệnh đề LIMIT để chọn một số dữ liệu với giới hạn, trong khi Oracle sử dụng ROWNUM.

1.1. Cú pháp cho SQL Server / MS Access:

SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition; 

1.2. Cú pháp cho MySQL:

SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;

1.3. Cú pháp cho Oracle:

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;

Ví dụ: Câu lệnh SQL sau chọn ba bản ghi đầu tiên từ bảng “Customers” (dành cho SQL Server / MS Access):

/*
Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: cafedevn@gmail.com
Fanpage: https://www.facebook.com/cafedevn
Group: https://www.facebook.com/groups/cafedev.vn/
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
Pinterest: https://www.pinterest.com/cafedevvn/
YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
*/ 

SELECT TOP 3 * FROM Customers;

Ví dụ: Câu lệnh SQL sau hiển thị ví dụ tương đương bằng cách sử dụng mệnh đề LIMIT (cho MySQL):

SELECT * FROM Customers
LIMIT 3;

Ví dụ: Câu lệnh SQL sau đây cho thấy ví dụ tương đương bằng cách sử dụng ROWNUM (dành cho Oracle):

SELECT * FROM Customers
WHERE ROWNUM <= 3;

Ví dụ: Câu lệnh SQL sau chọn 50% dữ liệu đầu tiên từ bảng “Customers” (dành cho SQL Server / MS Access):

SELECT TOP 50 PERCENT * FROM Customers;

Ví dụ: Câu lệnh SQL sau chọn ba dữ liệu đầu tiên từ bảng “Customers”, trong đó quốc gia là “VN” (đối với SQL Server / MS Access):

/*
Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: cafedevn@gmail.com
Fanpage: https://www.facebook.com/cafedevn
Group: https://www.facebook.com/groups/cafedev.vn/
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
Pinterest: https://www.pinterest.com/cafedevvn/
YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
*/

SELECT TOP 3 * FROM Customers
WHERE Country='VN'; 

Ví dụ: Câu lệnh SQL sau hiển thị ví dụ tương đương bằng cách sử dụng mệnh đề LIMIT (cho MySQL):

SELECT * FROM Customers
WHERE Country='VN'
LIMIT 3; 

Ví dụ: Câu lệnh SQL sau đây cho thấy ví dụ tương đương bằng cách sử dụng ROWNUM (dành cho Oracle):

SELECT * FROM Customers
WHERE Country='VN' AND ROWNUM <= 3;

Lưu ý: Các bạn tham khảo bài giới thiệu này để lấy dữ liệu mẫu và chạy các ví dụ của toàn bộ series này nha. Khi bạn thực hành mà không tìm thấy kết quả và không xảy ra lỗi thì có thể dữ liệu của bạn không tồn tại, vì vậy, bạn có thể insert thêm data vào bảng và thực hành lại nha.

Full series tự học SQL từ cơ bản tới nâng cao tại đây nha.

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!