Hướng dẫn select top trong mysql

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
    • 1.1. Cú pháp cho SQL Server / MS Access:
    • 1.2. Cú pháp cho MySQL:
    • 1.3. Cú pháp cho Oracle:

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: 
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: 
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:

  • Group Facebook
  • Fanpage
  • Youtube
  • Instagram
  • Twitter
  • Linkedin
  • Pinterest
  • Trang chủ

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!

Câu lệnh SELECT TOP trong SQL hiển thị số lượng bản ghi hoặc hàng giới hạn từ bảng cơ sở dữ liệu. Mệnh đề TOP trong câu lệnh chỉ định có bao nhiêu hàng được trả về.

Nó hiển thị số hàng N trên cùng từ các bảng trong kết quả đầu ra. Mệnh đề này được sử dụng khi có hàng nghìn bản ghi được lưu trữ trong các bảng cơ sở dữ liệu.

Các bài viết liên quan:

Hãy lấy một ví dụ đơn giản: Nếu một bảng Sinh viên có một lượng lớn dữ liệu về sinh viên, câu lệnh select TOP xác định lượng dữ liệu sinh viên sẽ được truy xuất từ ​​bảng đã cho.

Lưu ý: Tất cả các hệ thống cơ sở dữ liệu không hỗ trợ từ khóa TOP để lựa chọn số lượng bản ghi có hạn. Oracle hỗ trợ từ khóa ROWNUM và MySQL hỗ trợ từ khóa LIMIT.

  • Cú pháp của mệnh đề TOP trong SQL
  • Ví dụ về mệnh đề TOP trong SQL
  • Cú pháp của mệnh đề LIMIT trong MySQL
  • Ví dụ về mệnh đề LIMIT trong MySQL
  • Cú pháp của từ khóa ROWNUM trong Mệnh đề WHERE trong cơ sở dữ liệu Oracle
  • Ví dụ về từ khóa ROWNUM trong Mệnh đề WHERE trong Oracle

Cú pháp của mệnh đề TOP trong SQL

Hướng dẫn select top trong mysql

Trong cú pháp, số biểu thị số hàng được hiển thị từ trên cùng trong đầu ra. column_Name biểu thị cột có bản ghi mà chúng tôi muốn hiển thị trong đầu ra. Chúng ta cũng có thể chỉ định điều kiện bằng mệnh đề WHERE.

Ví dụ về mệnh đề TOP trong SQL

Bốn ví dụ SQL sau đây sẽ giúp bạn cách sử dụng Số và Phần trăm trong mệnh đề TOP của SQL trong truy vấn:

Car Name Car Color Car Cost
Hyundai Creta White 10,85,000
Hyundai Venue White 9,50,000
Hyundai i20 Red 9,00,000
Kia Sonet White 10,00,000
Kia Seltos Black 8,00,000
Swift Dezire Red 7,95,000

Giả sử, bạn muốn hiển thị ba Tên và Màu xe đầu tiên từ bảng trên. Để thực hiện việc này, bạn phải nhập truy vấn sau vào SQL:

Hướng dẫn select top trong mysql

Truy vấn này hiển thị bảng sau trên màn hình:

Car_Name Car_Color
Hyundai Creta White
Hyundai Venue White
Hyundai i20 Red
Stu_ID Stu_Name Stu_Marks
1001 Abhay 85
1002 Ankit 75
1003 Bheem 60
1004 Ram 79
1005 Sumit 80

Giả sử, bạn muốn hiển thị chi tiết của bốn học sinh đầu tiên trong kết quả từ bảng trên. Để thực hiện việc này, bạn phải nhập truy vấn sau vào SQL:

Hướng dẫn select top trong mysql

Truy vấn này hiển thị bảng sau trên màn hình trong đầu ra SQL:

Stu_ID Stu_Name Stu_Marks
1001 Abhay 85
1002 Ankit 75
1003 Bheem 60
1004 Ram 79
Emp_Id Emp_Name Emp_Salary Emp_City
201 Abhay 25000 Goa
202 Ankit 45000 Delhi
203 Bheem 30000 Goa
204 Ram 29000 Goa
205 Sumit 40000 Delhi

Giả sử, bạn muốn hiển thị chi tiết của bốn nhân viên đầu tiên có thành phố là Goa từ bảng trên. Để thực hiện việc này, bạn phải nhập truy vấn sau vào SQL:

Hướng dẫn select top trong mysql

Truy vấn này hiển thị bảng sau trên màn hình trong đầu ra SQL:

Emp_Id Emp_Name Emp_Salary Emp_City
201 Abhay 25000 Goa
203 Bheem 30000 Goa
204 Ram 29000 Goa
Bike_Name Bike_Color Bike_Cost
KTM DUKE Black 185,000
Royal Enfield Black NULL
Pulsar Red 90,0000
Apache White NULL
Livo Black 80,000
KTM RC Red 195,000

Giả sử, bạn muốn hiển thị 50 phần trăm dữ liệu từ bảng trên. Để thực hiện việc này, bạn phải nhập truy vấn sau vào SQL:

Hướng dẫn select top trong mysql

Truy vấn này hiển thị bảng sau trên màn hình:

Bike_Name Bike_Color Bike_Cost
KTM DUKE Black 185,000
Royal Enfield Black NULL
Pulsar Red 90,0000

Cú pháp của mệnh đề LIMIT trong MySQL

Hướng dẫn select top trong mysql

Trong cú pháp, chúng ta phải chỉ định giá trị sau từ khóa LIMIT. Giá trị biểu thị số hàng được hiển thị từ trên cùng trong đầu ra.

Ví dụ về mệnh đề LIMIT trong MySQL

Ví dụ SQL sau đây sẽ giúp bạn cách sử dụng mệnh đề LIMIT trong truy vấn.

Car Name Car Color Car Cost
Hyundai Creta White 10,85,000
Hyundai Venue White 9,50,000
Hyundai i20 Red 9,00,000
Kia Sonet White 10,00,000
Kia Seltos Black 8,00,000
Swift Dezire Red 7,95,000

Giả sử, bạn muốn hiển thị ba bản ghi đầu tiên của Xe bằng mệnh đề LIMIT trong MySQL. Để làm điều này, bạn phải nhập truy vấn sau vào MySQL:

Hướng dẫn select top trong mysql

Truy vấn này hiển thị bảng sau trên màn hình:

Car Name Car Color Car Cost
Hyundai Creta White 10,85,000
Hyundai Venue White 9,50,000
Hyundai i20 Red 9,00,000

Cú pháp của từ khóa ROWNUM trong Mệnh đề WHERE trong cơ sở dữ liệu Oracle

Hướng dẫn select top trong mysql

Trong cú pháp, chúng ta phải gán giá trị cho ROWNUM trong mệnh đề WHERE. Giá trị biểu thị số hàng được hiển thị từ trên cùng trong đầu ra.

Ví dụ về từ khóa ROWNUM trong Mệnh đề WHERE trong Oracle

Ví dụ SQL sau đây sẽ giúp bạn cách sử dụng từ khóa ROWNUM trong truy vấn. 

Car Name Car Color Car Cost
Hyundai Creta White 10,85,000
Hyundai Venue White 9,50,000
Hyundai i20 Red 9,00,000
Kia Sonet White 10,00,000
Kia Seltos Black 8,00,000
Swift Dezire Red 7,95,000

Giả sử, bạn muốn hiển thị ba bản ghi đầu tiên của Xe bằng từ khóa ROWNUM trong Oracle. Để thực hiện việc này, bạn phải nhập truy vấn sau vào cơ sở dữ liệu Oracle:

Hướng dẫn select top trong mysql

Truy vấn này hiển thị bảng sau trên màn hình:

Car Name Car Color Car Cost
Hyundai Creta White 10,85,000
Hyundai Venue White 9,50,000
Hyundai i20 Red 9,00,000