Mệnh đề LIMIT trong SQL kiểm soát số bản ghi được trả về trong một truy vấn. Đúng như tên gọi, mệnh đề LIMIT giới hạn các hàng được hiển thị sau khi lọc dữ liệu. Mệnh đề này rất quan trọng khi xử lý các tập dữ liệu lớn, nhưng bạn chỉ muốn truy xuất một phần dữ liệu cụ thể.
Nếu bạn đang hướng tới nghề nghiệp dữ liệu, tôi khuyến nghị bạn học các khóa Introduction to SQL và SQL Fundamentals của DataCamp để trang bị các kỹ năng SQL phù hợp cho phân tích dữ liệu.
Câu trả lời ngắn: Mệnh đề SQL LIMIT là gì?
Mệnh đề LIMIT trong SQL là mệnh đề hữu ích dùng để chỉ định số bản ghi một truy vấn nên trả về sau khi lọc dữ liệu. Kỹ thuật này cho phép chỉ trả về một tập con dữ liệu để hiển thị hoặc phân tích. Do đó, mệnh đề LIMIT quan trọng để chia nhỏ dữ liệu lớn thành các phần nhỏ hơn trong phân trang dữ liệu. Nó cũng được dùng để tối ưu hiệu năng nhằm tránh các truy vấn lớn có thể làm chậm hiệu suất cơ sở dữ liệu.
Ví dụ dưới đây minh họa cách dùng cơ bản của mệnh đề LIMIT để chỉ hiển thị 10 bản ghi đầu tiên từ bảng employees.
-- Select all columns from the employees table-- and limit the number of returned rows to 10.SELECT*FROM employees
LIMIT10;Được hỗ trợ bởi
Cú pháp của mệnh đề SQL LIMIT
Mệnh đề LIMIT trong SQL được đưa vào câu lệnh SELECT để kiểm soát số bản ghi trả về từ một truy vấn. Mệnh đề LIMIT được thêm ở cuối câu lệnh để lọc các bản ghi theo yêu cầu. Bạn cũng có thể xem SQL Basics Cheat Sheet của DataCamp để tìm hiểu thêm về LIMIT và các mệnh đề SQL phổ biến khác.
-- Select columns column1, column2, ... from the table table_nameSELECT column1, column2,...FROM table_name
-- Limit the number of rows returned to number_of_rowsLIMIT number_of_rows;Được hỗ trợ bởi
Dưới đây là mệnh đề LIMIT trong một ví dụ thực tế. Truy vấn sẽ chỉ hiển thị 10 bản ghi của bảng employees từ các cột first_name, last_name và department.
-- Select first_name, last_name, and department from the employees tableSELECT first_name, last_name, department
FROM employees
-- Limit the number of rows returned to 10LIMIT10;Được hỗ trợ bởi
Đôi khi, bạn có thể dùng mệnh đề tùy chọn OFFSET để bỏ qua một số hàng nhất định trước khi hiển thị các hàng mong muốn. Cú pháp của OFFSET được thể hiện bên dưới.
-- Select column_names from the table table_nameSELECT column_names
FROM table_name
-- Arrange the results in ascending order based on column_nameORDERBY column_name
-- Limit the number of rows returned to number_of_rows, starting from offset_valueLIMIT number_of_rows OFFSET offset_value;Được hỗ trợ bởi
Trong truy vấn SQL trên, number_of_rows cho biết số hàng cần trả về, còn offset_value cho biết số hàng truy vấn sẽ bỏ qua trước khi trả về.
Ví dụ dưới đây cho thấy cách dùng các mệnh đề OFFSET và LIMIT để kiểm soát số hàng cần trả về. Trong khi mệnh đề LIMIT chỉ định trả về 10 bản ghi, mệnh đề OFFSET trong truy vấn bỏ qua 5 bản ghi đầu tiên. Vì vậy, kết quả sẽ hiển thị từ hàng thứ 6 đến hàng thứ 15 (10 hàng).
-- Select first_name, last_name, and department from the employees tableSELECT first_name, last_name, department
FROM employees
-- Limit the number of rows returned to 10, starting from the 6th row (offset of 5)LIMIT10OFFSET5;Được hỗ trợ bởi
Những điểm quan trọng cần nhớ về mệnh đề SQL LIMIT
Hiểu cách triển khai đúng mệnh đề LIMIT và các biến thể của nó trên những hệ quản trị cơ sở dữ liệu SQL khác nhau là điều then chốt để tối ưu hiệu năng truy vấn và đảm bảo truy xuất dữ liệu chính xác. Hãy cùng xem một số điểm quan trọng.
Vị trí của mệnh đề LIMIT trong câu lệnh SELECT
Mệnh đề LIMIT thường đặt ở cuối câu lệnh SELECT sau mệnh đề FROM. Nếu bạn dùng các mệnh đề gom nhóm tùy chọn khác như WHERE, GROUP BY và ORDER BY, hãy đảm bảo mệnh đề LIMIT ở cuối truy vấn.
-- Select all columns from the employees tableSELECT*FROM employees
-- Limit the number of rows returned to 5, starting from the 21st row (offset of 20)LIMIT10OFFSET20;Được hỗ trợ bởi
Kết hợp LIMIT với mệnh đề ORDER BY
Mệnh đề LIMIT có thể kết hợp với ORDER BY để tạo ra kết quả nhất quán và có thể dự đoán. Kỹ thuật này đảm bảo dữ liệu được sắp xếp theo một thứ tự nhất định trước khi truy xuất. Trong ví dụ dưới đây, chúng ta sắp xếp dữ liệu theo hire_date giảm dần trước khi hiển thị các hàng đã lọc.
-- Select all columns from the employees tableSELECT*FROM employees
-- Arrange the results in descending order based on hire_dateORDERBY hire_date DESC-- Limit the number of rows returned to 10LIMIT10;Được hỗ trợ bởi
Tôi khuyến nghị bạn học lộ trình nghề nghiệp Associate Data Analyst in SQL và khóa Reporting in SQL của DataCamp để tìm hiểu thêm về các hàm tổng hợp và ứng dụng của chúng trong phân tích dữ liệu.
Biến thể và cú pháp của LIMIT giữa các hệ cơ sở dữ liệu
Các ví dụ trên minh họa việc sử dụng mệnh đề LIMIT trong các cơ sở dữ liệu được hỗ trợ như PostgreSQL, SQLite và MySQL.
Để đạt kết quả tương tự trong SQL Server, hãy cân nhắc dùng hàm TOP để kiểm soát số bản ghi trả về từ dữ liệu cho trước.
-- Select the top 10 records of first_name, last_name from the employees tableSELECTTOP10 first_name, last_name
FROM employees
-- Arrange the results in descending order based on hire_dateORDERBY hire_date DESC;Được hỗ trợ bởi
Tương tự, cơ sở dữ liệu Oracle hỗ trợ dùng FETCH FIRST n ROWS ONLY để kiểm soát số bản ghi trả về trong một truy vấn.
-- Select the first_name and last_name columns from the employees tableSELECT first_name, last_name
FROM employees
-- Order the results in descending order based on hire_dateORDERBY hire_date DESC-- Limit the number of rows returned to the first 10 rowsFETCHFIRST10ROWS ONLY;Được hỗ trợ bởi
LIMIT và OFFSET trong phân trang
LIMIT và OFFSET trong SQL thường được kết hợp để đạt hiệu quả phân trang dữ liệu. Kỹ thuật này đảm bảo các tập dữ liệu lớn được chia thành các phần nhỏ, dễ quản lý để hiển thị phù hợp.
Trong ví dụ dưới đây, mệnh đề LIMIT và OFFSET giới hạn các hàng hiển thị ở mức 10 nhưng bắt đầu từ hàng thứ 21.
-- Select all columns from the employees tableSELECT*-- Arrange the results in descending order based on hire_dateFROM employees
ORDERBY hire_date DESC-- Limit the number of rows returned to 10, starting from the 21st row (offset of 20)LIMIT10OFFSET20;Được hỗ trợ bởi
Các trường hợp sử dụng phổ biến của mệnh đề SQL LIMIT
Phân trang: Khi kết hợp với mệnh đề OFFSET, mệnh đề LIMIT được dùng trong ứng dụng web để phân trang dữ liệu. Kỹ thuật này hiển thị dữ liệu theo từng phần/tiểu tập nhỏ, như trên các trang web khác nhau.
Tối ưu hiệu năng: Mệnh đề LIMIT có thể cải thiện hiệu năng truy vấn bằng cách giảm tải cho máy chủ cơ sở dữ liệu. Điều này đạt được bằng cách truy xuất và trả về các tiểu tập dữ liệu nhỏ hơn tại mỗi lần.
Lấy mẫu dữ liệu: Mệnh đề LIMIT hữu ích trong phân tích dữ liệu bằng cách truy xuất các tiểu tập dữ liệu nhỏ hơn. Phương pháp này giúp nhà phân tích dữ liệu cải thiện hiệu năng trong quá trình phân tích.
Hạn chế của lệnh SQL LIMIT
Các hạn chế của mệnh đề LIMIT trong SQL bao gồm:
Không được tất cả cơ sở dữ liệu hỗ trợ: Mệnh đề LIMIT không được hỗ trợ trong mọi cơ sở dữ liệu. Chẳng hạn, mệnh đề LIMIT không có trong SQL Server và Oracle.
Vấn đề hiệu năng với giá trị OFFSET lớn: Dùng các giá trị OFFSET lớn có thể làm chậm máy chủ cơ sở dữ liệu, dẫn đến thời gian thực thi truy vấn chậm hơn.
Để tránh các hạn chế giữa những cơ sở dữ liệu khác nhau, hãy cân nhắc dùng các lựa chọn thay thế sau.
Mệnh đề TOP trong SQL Server
Mệnh đề TOP cho kết quả tương tự mệnh đề LIMIT đối với cơ sở dữ liệu SQL Server.
-- Select the top 10 rows from the employees table ordered by hire_dateSELECTTOP10 first_name, last_name
FROM employees
ORDERBY hire_date DESC;Được hỗ trợ bởi
FETCH FIRST n ROWS ONLY trong SQL Server và DB2
FETCH FIRST n ROWS ONLY cũng trả về kết quả tương tự mệnh đề LIMIT đối với cơ sở dữ liệu SQL Server và DB2.
-- Select the first 10 rows from the employees table ordered by hire_dateSELECT first_name, last_name
FROM employees
ORDERBY hire_date DESCFETCHFIRST10ROWS ONLY;Được hỗ trợ bởi
ROWNUM trong Oracle
Trong cơ sở dữ liệu Oracle, hàm ROWNUM kiểm soát số bản ghi được trả về từ dữ liệu. Hàm này được kết hợp trong một truy vấn con để lọc dữ liệu theo yêu cầu.
-- Select the top 10 rows from the employees table ordered by hire_dateSELECT*FROM(SELECT first_name, last_name
FROM employees
ORDERBY hire_date DESC)WHERE ROWNUM <=10;Được hỗ trợ bởi
Kết luận
Mệnh đề LIMIT trong SQL rất quan trọng để giới hạn số hàng được hiển thị sau khi truy xuất dữ liệu từ cơ sở dữ liệu. Là một người làm dữ liệu, bạn cần hiểu các trường hợp sử dụng khác nhau của mệnh đề LIMIT cho phân tích và xử lý dữ liệu. Tương tự, bạn nên cân nhắc mức độ hỗ trợ của mệnh đề LIMIT trong từng cơ sở dữ liệu và dùng các hàm thay thế khi làm việc với các hệ không tương thích như SQL Server và Oracle.
Để hiểu các cách áp dụng khác nhau của mệnh đề LIMIT trong SQL, bạn nên tiếp tục luyện tập với các tập dữ liệu đa dạng. Các khóa Learn SQL và Intermediate SQL của DataCamp phù hợp để trau dồi kỹ năng SQL nâng cao. Tôi cũng khuyến nghị bạn theo đuổi SQL Associate Certification của DataCamp để chứng minh kiến thức SQL và nổi bật giữa các chuyên gia dữ liệu khác.
Biên tập viên kỹ thuật về Khoa học dữ liệu với kinh nghiệm thực tế trong phân tích dữ liệu, trí tuệ doanh nghiệp và khoa học dữ liệu. Tôi viết nội dung thực tiễn, tập trung vào ngành về SQL, Python, Power BI, Databricks và kỹ thuật dữ liệu, dựa trên công việc phân tích trong thế giới thực. Bài viết của tôi kết nối chiều sâu kỹ thuật với tác động kinh doanh, giúp các chuyên gia chuyển đổi dữ liệu thành những quyết định vững chắc.
Câu hỏi thường gặp
Mục đích sử dụng của hàm SQL LIMIT là gì?⌄
Hàm LIMIT trong SQL kiểm soát số hàng được trả về từ dữ liệu đã lọc.
Mục đích chính của SQL LIMIT là gì?⌄
SQL LIMIT chủ yếu được dùng để phân trang dữ liệu trên các trang web nhằm giới hạn số hàng hiển thị.
Mệnh đề SQL LIMIT có được hỗ trợ trong tất cả các cơ sở dữ liệu không?⌄
Hàm LIMIT trong SQL chỉ được hỗ trợ trong các cơ sở dữ liệu PostgreSQL, MySQL và SQLite. Mệnh đề này không được hỗ trợ trong SQL Server và Oracle.
Lựa chọn thay thế cho mệnh đề LIMIT trong các cơ sở dữ liệu không hỗ trợ là gì?⌄
Các lựa chọn thay thế cho hàm LIMIT trong SQL Server là các mệnh đề TOP và FETCH FIRST n ROWS ONLY. Cơ sở dữ liệu Oracle dùng hàm ROWNUM như một lựa chọn thay thế cho LIMIT.
OFFSET được dùng để làm gì trong mệnh đề SQL LIMIT?⌄
Chúng ta có thể dùng OFFSET để chỉ định số hàng cần bỏ qua trước khi trả về số hàng cụ thể theo mệnh đề LIMIT.
Mệnh đề
LIMITtrong SQL kiểm soát số bản ghi được trả về trong một truy vấn. Đúng như tên gọi, mệnh đềLIMITgiới hạn các hàng được hiển thị sau khi lọc dữ liệu. Mệnh đề này rất quan trọng khi xử lý các tập dữ liệu lớn, nhưng bạn chỉ muốn truy xuất một phần dữ liệu cụ thể.Nếu bạn đang hướng tới nghề nghiệp dữ liệu, tôi khuyến nghị bạn học các khóa Introduction to SQL và SQL Fundamentals của DataCamp để trang bị các kỹ năng SQL phù hợp cho phân tích dữ liệu.
Câu trả lời ngắn: Mệnh đề SQL LIMIT là gì?
Mệnh đề
LIMITtrong SQL là mệnh đề hữu ích dùng để chỉ định số bản ghi một truy vấn nên trả về sau khi lọc dữ liệu. Kỹ thuật này cho phép chỉ trả về một tập con dữ liệu để hiển thị hoặc phân tích. Do đó, mệnh đềLIMITquan trọng để chia nhỏ dữ liệu lớn thành các phần nhỏ hơn trong phân trang dữ liệu. Nó cũng được dùng để tối ưu hiệu năng nhằm tránh các truy vấn lớn có thể làm chậm hiệu suất cơ sở dữ liệu.Ví dụ dưới đây minh họa cách dùng cơ bản của mệnh đề
LIMITđể chỉ hiển thị 10 bản ghi đầu tiên từ bảngemployees.Cú pháp của mệnh đề SQL LIMIT
Mệnh đề
LIMITtrong SQL được đưa vào câu lệnhSELECTđể kiểm soát số bản ghi trả về từ một truy vấn. Mệnh đềLIMITđược thêm ở cuối câu lệnh để lọc các bản ghi theo yêu cầu. Bạn cũng có thể xem SQL Basics Cheat Sheet của DataCamp để tìm hiểu thêm vềLIMITvà các mệnh đề SQL phổ biến khác.Dưới đây là mệnh đề
LIMITtrong một ví dụ thực tế. Truy vấn sẽ chỉ hiển thị 10 bản ghi của bảngemployeestừ các cộtfirst_name,last_namevàdepartment.Đôi khi, bạn có thể dùng mệnh đề tùy chọn
OFFSETđể bỏ qua một số hàng nhất định trước khi hiển thị các hàng mong muốn. Cú pháp củaOFFSETđược thể hiện bên dưới.Trong truy vấn SQL trên,
number_of_rowscho biết số hàng cần trả về, cònoffset_valuecho biết số hàng truy vấn sẽ bỏ qua trước khi trả về.Ví dụ dưới đây cho thấy cách dùng các mệnh đề
OFFSETvàLIMITđể kiểm soát số hàng cần trả về. Trong khi mệnh đềLIMITchỉ định trả về 10 bản ghi, mệnh đềOFFSETtrong truy vấn bỏ qua 5 bản ghi đầu tiên. Vì vậy, kết quả sẽ hiển thị từ hàng thứ 6 đến hàng thứ 15 (10 hàng).Những điểm quan trọng cần nhớ về mệnh đề SQL LIMIT
Hiểu cách triển khai đúng mệnh đề
LIMITvà các biến thể của nó trên những hệ quản trị cơ sở dữ liệu SQL khác nhau là điều then chốt để tối ưu hiệu năng truy vấn và đảm bảo truy xuất dữ liệu chính xác. Hãy cùng xem một số điểm quan trọng.Vị trí của mệnh đề LIMIT trong câu lệnh SELECT
Mệnh đề
LIMITthường đặt ở cuối câu lệnhSELECTsau mệnh đềFROM. Nếu bạn dùng các mệnh đề gom nhóm tùy chọn khác nhưWHERE,GROUP BYvàORDER BY, hãy đảm bảo mệnh đềLIMITở cuối truy vấn.Kết hợp LIMIT với mệnh đề ORDER BY
Mệnh đề
LIMITcó thể kết hợp vớiORDER BYđể tạo ra kết quả nhất quán và có thể dự đoán. Kỹ thuật này đảm bảo dữ liệu được sắp xếp theo một thứ tự nhất định trước khi truy xuất. Trong ví dụ dưới đây, chúng ta sắp xếp dữ liệu theohire_dategiảm dần trước khi hiển thị các hàng đã lọc.Tôi khuyến nghị bạn học lộ trình nghề nghiệp Associate Data Analyst in SQL và khóa Reporting in SQL của DataCamp để tìm hiểu thêm về các hàm tổng hợp và ứng dụng của chúng trong phân tích dữ liệu.
Biến thể và cú pháp của LIMIT giữa các hệ cơ sở dữ liệu
Các ví dụ trên minh họa việc sử dụng mệnh đề
LIMITtrong các cơ sở dữ liệu được hỗ trợ như PostgreSQL, SQLite và MySQL.Để đạt kết quả tương tự trong SQL Server, hãy cân nhắc dùng hàm
TOPđể kiểm soát số bản ghi trả về từ dữ liệu cho trước.Tương tự, cơ sở dữ liệu Oracle hỗ trợ dùng
FETCH FIRST n ROWS ONLYđể kiểm soát số bản ghi trả về trong một truy vấn.LIMIT và OFFSET trong phân trang
LIMITvàOFFSETtrong SQL thường được kết hợp để đạt hiệu quả phân trang dữ liệu. Kỹ thuật này đảm bảo các tập dữ liệu lớn được chia thành các phần nhỏ, dễ quản lý để hiển thị phù hợp.Trong ví dụ dưới đây, mệnh đề
LIMITvàOFFSETgiới hạn các hàng hiển thị ở mức10nhưng bắt đầu từ hàng thứ 21.Các trường hợp sử dụng phổ biến của mệnh đề SQL LIMIT
OFFSET, mệnh đềLIMITđược dùng trong ứng dụng web để phân trang dữ liệu. Kỹ thuật này hiển thị dữ liệu theo từng phần/tiểu tập nhỏ, như trên các trang web khác nhau.LIMITcó thể cải thiện hiệu năng truy vấn bằng cách giảm tải cho máy chủ cơ sở dữ liệu. Điều này đạt được bằng cách truy xuất và trả về các tiểu tập dữ liệu nhỏ hơn tại mỗi lần.LIMIThữu ích trong phân tích dữ liệu bằng cách truy xuất các tiểu tập dữ liệu nhỏ hơn. Phương pháp này giúp nhà phân tích dữ liệu cải thiện hiệu năng trong quá trình phân tích.Hạn chế của lệnh SQL LIMIT
Các hạn chế của mệnh đề
LIMITtrong SQL bao gồm:LIMITkhông được hỗ trợ trong mọi cơ sở dữ liệu. Chẳng hạn, mệnh đềLIMITkhông có trong SQL Server và Oracle.OFFSETlớn có thể làm chậm máy chủ cơ sở dữ liệu, dẫn đến thời gian thực thi truy vấn chậm hơn.Để tránh các hạn chế giữa những cơ sở dữ liệu khác nhau, hãy cân nhắc dùng các lựa chọn thay thế sau.
Mệnh đề TOP trong SQL Server
Mệnh đề
TOPcho kết quả tương tự mệnh đềLIMITđối với cơ sở dữ liệu SQL Server.FETCH FIRST n ROWS ONLY trong SQL Server và DB2
FETCH FIRST n ROWS ONLYcũng trả về kết quả tương tự mệnh đềLIMITđối với cơ sở dữ liệu SQL Server và DB2.ROWNUM trong Oracle
Trong cơ sở dữ liệu Oracle, hàm
ROWNUMkiểm soát số bản ghi được trả về từ dữ liệu. Hàm này được kết hợp trong một truy vấn con để lọc dữ liệu theo yêu cầu.Kết luận
Mệnh đề
LIMITtrong SQL rất quan trọng để giới hạn số hàng được hiển thị sau khi truy xuất dữ liệu từ cơ sở dữ liệu. Là một người làm dữ liệu, bạn cần hiểu các trường hợp sử dụng khác nhau của mệnh đềLIMITcho phân tích và xử lý dữ liệu. Tương tự, bạn nên cân nhắc mức độ hỗ trợ của mệnh đềLIMITtrong từng cơ sở dữ liệu và dùng các hàm thay thế khi làm việc với các hệ không tương thích như SQL Server và Oracle.Để hiểu các cách áp dụng khác nhau của mệnh đề
LIMITtrong SQL, bạn nên tiếp tục luyện tập với các tập dữ liệu đa dạng. Các khóa Learn SQL và Intermediate SQL của DataCamp phù hợp để trau dồi kỹ năng SQL nâng cao. Tôi cũng khuyến nghị bạn theo đuổi SQL Associate Certification của DataCamp để chứng minh kiến thức SQL và nổi bật giữa các chuyên gia dữ liệu khác.