Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

ROW_NUMBER trong SQL - Chọn ví dụ hàng đầu trong SQL và SQL Server

SQL, hoặc ngôn ngữ truy vấn có cấu trúc, cho phép chúng tôi thu thập dữ liệu từ cơ sở dữ liệu thông qua các truy vấn. Nó cũng cho phép chúng tôi chèn, cập nhật và xóa dữ liệu đó.

Trong bài đăng trên blog này, chúng tôi sẽ tập trung vào cách tìm nạp dữ liệu và giới hạn kết quả bằng cách sử dụng SQL.

Tại sao bạn nên giới hạn kết quả truy vấn SQL?

Cơ sở dữ liệu thường là một tập hợp dữ liệu khổng lồ. Đôi khi chúng ta không cần tìm nạp tất cả các kết quả. Để giới hạn kết quả, chúng tôi có thể tối ưu hóa truy vấn.

Giới hạn kết quả truy vấn là quan trọng đối với hiệu suất DB. Việc tìm nạp một kết quả lớn khi nó không được yêu cầu sẽ phát sinh thêm tải trên cơ sở dữ liệu và ảnh hưởng đến trải nghiệm người dùng.

Cách giới hạn kết quả truy vấn trong SQL

Cú pháp khác nhau đối với SQL Server, Oracle và MySQL để giới hạn dữ liệu.

  • MySQL sử dụng LIMIT .
  • ORACLE sử dụng FETCH FIRST .
  • MS Access và SQL Server sử dụng TOP .

Chúng ta sẽ xem các ví dụ về cách hoạt động chi tiết của từng cái bên dưới.

Cơ sở dữ liệu Demo

Chúng tôi có bảng sau có tên students với chi tiết của họ như bạn có thể thấy bên dưới:

ID Tên Giới tính
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

Cách giới hạn truy vấn trong MySQL

Dưới đây là cú pháp cho MySQL.

SELECT  (expression)
FROM 
    table_name
LIMIT 5;

Ví dụ:chúng tôi sẽ chọn 5 bản ghi đầu tiên từ bảng.

Hãy sử dụng bảng students của chúng tôi cho cuộc trình diễn này.

-- fetch top 5 values from table

SELECT * FROM students
LIMIT 5;

Đầu ra:

Cách kết hợp LIMIT với ORDER BY

Khi bạn kết hợp LIMIT với ORDER BY, bạn có thể nhận được nhiều kết quả có ý nghĩa hơn. Ví dụ:chúng tôi có thể sử dụng điều này để tìm 5 sinh viên hàng đầu đạt điểm cao hơn 70% trong bài kiểm tra của họ.

Hãy đặt bàn của chúng ta students với cột name và chọn 5 đầu từ kết quả. Bạn có thể làm như thế này:

SELECT * FROM students
order by name
LIMIT 5;

Đầu ra:

Cách giới hạn kết quả - Cú pháp Oracle

Dưới đây là cú pháp tương đương cho ví dụ đầu tiên của chúng tôi trong Oracle.

SELECT * FROM students
FETCH FIRST 5 ROWS ONLY;

Trong các phiên bản Oracle cũ hơn, bạn có thể sử dụng ROWNUM để hạn chế số hàng được trả về bởi một truy vấn.

Ví dụ:

SELECT * FROM 
students 
WHERE ROWNUM < 5;

Cách giới hạn kết quả trong cú pháp SQL - MS Access

Dưới đây là cú pháp tương đương cho ví dụ đầu tiên của chúng tôi trong MS Access.

SELECT TOP 5 * FROM students;

Kết thúc

Chức năng LIMIT có thể rất mạnh để tối ưu hóa truy vấn khi được kết hợp với sắp xếp. Các truy vấn hiệu quả nhẹ hơn trên hệ thống và nhanh chóng cho người dùng. Chúng tôi luôn khuyên bạn nên GIỚI HẠN kết quả nếu có.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JSON_MERGE_PATCH () - Thực hiện hợp nhất tài liệu JSON tuân thủ RFC 7396 trong MySQL

  2. Truy vấn SQL để hiển thị ngày gần nhất?

  3. Kiểm tra Docker-compile xem kết nối mysql đã sẵn sàng chưa

  4. Tôi có thể thay thế mù quáng tất cả các hàm mysql_ bằng mysqli_ không?

  5. Cách đặt hàng theo tên tháng trong MySQL