Khi làm việc với một database có lượng dữ liệu lớn, mỗi câu truy vấn có thể trả về rất nhiều kết quả thì việc hiển thị chúng trong cùng một lúc sẽ rất tốn kém tài nguyên. Mệnh đề LIMIT được sinh ra nhằm giải quyết vấn đề này. Nó có các chức năng như:
-
Mệnh đề LIMIT được sử dụng để đặt giới hạn trên về số lượng bộ giá trị được SQL trả về.
- Điều quan trọng cần lưu ý là mệnh đề này không được hỗ trợ bởi tất cả các phiên bản SQL
- Mệnh đề LIMIT cũng có thể được chỉ định bằng cách sử dụng mệnh đề SQL 2008 OFFSET / FETCH FIRST
- Biểu thức limit/offset phải là một số nguyên không âm.
Cách sử dụng LIMIT trong SQL
Ví dụ chúng 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 |
SELECT * FROM Student LIMIT 5;
Output:
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
Sử dụng LIMIT kết hợp với ORDER BY
SELECT * FROM Student ORDER BY Grade DESC LIMIT 3;
Output
12006 | Anne | 10 |
12001 | Aditya | 9 |
12004 | Robin | 9 |
Sử dụng LIMIT kết với với OFFSET
OFFSET có nghĩa là bỏ qua một lượng OFFSET dòng đầu tiên trong kết quả trả về, tập dữ liệu này sẽ được trích xuất tối đa LIMIT dòng trong tập này và trả về kết quả.
SELECT * FROM Student LIMIT 5 OFFSET 2 ORDER BY ROLLNO;
Output:
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anne | 10 |
12007 | Yusuf | 7 |
LIMIT ALL trong SQL
LIMIT ALL cũng có nghĩa là không giới hạn số lượng dòng dữ liệu trả về.
SELECT * FROM Student LIMIT ALL;