SQL - Câu lệnh TOP: Hướng dẫn cho người mới bắt đầu

Xin chào các pháp sư SQL tương lai! Hôm nay, chúng ta sẽ cùng lặn vào thế giới kỳ diệu của câu lệnh SQL TOP. Đừng lo lắng nếu bạn chưa bao giờ viết một dòng mã trước đây - tôi sẽ là người hướng dẫn thân thiện của bạn trong hành trình thú vị này. Vậy, lấy cây phép ảo của bạn (tức là bàn phím), và chúng ta cùng bắt đầu nhé!

SQL - Top Clause

Câu lệnh SQL TOP

Hãy tưởng tượng bạn đang ở một tiệc tự chọn, nhưng bạn đang ăn kiêng. Bạn muốn thử thức ăn, nhưng bạn không muốn ăn quá nhiều. Đó là lúc câu lệnh TOP phát huy tác dụng trong SQL! Nó cho phép bạn giới hạn số lượng hàng được trả về bởi truy vấn của bạn.

Cú pháp cơ bản trông như này:

SELECT TOP số_lượng_hàng column_names
FROM tên_bảng;

Hãy xem nó trong hành động với một ví dụ thực tế. Giả sử chúng ta có một bảng叫做 Students với các cột StudentID, Name, và Grade. Nếu chúng ta muốn xem chỉ 5 học sinh đầu tiên, chúng ta sẽ viết:

SELECT TOP 5 StudentID, Name, Grade
FROM Students;

Truy vấn này sẽ trả về chỉ 5 hàng đầu tiên từ bảng Students. Đó giống như chọn 5 học sinh đầu tiên trong hàng đợi để ăn trưa!

TOP với Câu lệnh ORDER BY

Bây giờ, nếu chúng ta muốn các học sinh hàng đầu, thực sự? Chúng ta có thể kết hợp TOP với ORDER BY để lấy các học sinh có điểm cao nhất:

SELECT TOP 3 StudentID, Name, Grade
FROM Students
ORDER BY Grade DESC;

Truy vấn này sẽ cho chúng ta top 3 học sinh có điểm cao nhất. Từ khóa DESC sắp xếp các điểm theo thứ tự giảm dần, vì vậy chúng ta có các điểm cao nhất trước.

Câu lệnh TOP với PERCENT

Đôi khi, thay vì một số lượng cụ thể của hàng, chúng ta muốn một phần trăm. Câu lệnh TOP cũng có thể làm điều đó! Giả sử chúng ta muốn xem top 10% học sinh của mình:

SELECT TOP 10 PERCENT StudentID, Name, Grade
FROM Students
ORDER BY Grade DESC;

Truy vấn này sẽ trả về top 10% học sinh dựa trên điểm của họ. Đó giống như chọn phần精英 của nhóm!

TOP với Câu lệnh WHERE

Chúng ta cũng có thể kết hợp TOP với WHERE để lọc kết quả. Ví dụ, nếu chúng ta muốn xem top 5 học sinh có điểm trên 80:

SELECT TOP 5 StudentID, Name, Grade
FROM Students
WHERE Grade > 80
ORDER BY Grade DESC;

Truy vấn này đầu tiên lọc bỏ tất cả học sinh có điểm 80 hoặc dưới, sau đó chọn top 5 từ số học sinh còn lại.

Câu lệnh TOP với Câu lệnh DELETE

Hãy cẩn thận với này, các bạn ơi! Câu lệnh TOP cũng có thể được sử dụng với câu lệnh DELETE. Đó giống như có một siêu năng lực - với quyền lực lớn đi kèm với trách nhiệm lớn!

DELETE TOP (5) FROM Students
WHERE Grade < 50;

Truy vấn này sẽ xóa 5 bản ghi đầu tiên của học sinh có điểm dưới 50. Luôn kiểm tra lại trước khi chạy các truy vấn DELETE!

TOP và Câu lệnh WITH TIES

Đôi khi, chúng ta muốn bao gồm tất cả các hàng có điểm bằng hàng cuối cùng trong kết quả TOP. Đó là lúc câu lệnh WITH TIES được sử dụng:

SELECT TOP 3 WITH TIES StudentID, Name, Grade
FROM Students
ORDER BY Grade DESC;

Nếu học sinh thứ 3 và thứ 4 có cùng điểm, truy vấn này sẽ trả về 4 hàng thay vì 3, bao gồm cả hai học sinh có điểm bằng nhau.

Sử dụng của Câu lệnh TOP

Bây giờ chúng ta đã khám phá câu lệnh TOP, hãy tóm tắt các sử dụng của nó trong bảng tiện lợi:

Trường hợp sử dụng Mô tả Ví dụ
Giới hạn kết quả Hạn chế số lượng hàng trả về SELECT TOP 10 * FROM Products
Hiệu suất Cải thiện hiệu suất truy vấn bằng cách hạn chế việc lấy dữ liệu SELECT TOP 1000 * FROM LargeTable
Lấy mẫu Lấy một mẫu nhanh chóng của dữ liệu SELECT TOP 5 PERCENT * FROM Customers
Xếp hạng Tìm người có thành tích cao nhất hoặc thấp nhất SELECT TOP 5 * FROM Sales ORDER BY Amount DESC
Phân trang Thực hiện phân trang cơ bản trong các ứng dụng SELECT TOP 20 * FROM Articles WHERE ID > @LastID
Dọn dẹp dữ liệu Xóa một số lượng cụ thể của các bản ghi có vấn đề DELETE TOP (100) FROM ErrorLog

Nhớ rằng, câu lệnh TOP giống như một cây kéo đa năng trong bộ công cụ SQL của bạn. Nó linh hoạt, mạnh mẽ và vô cùng hữu ích khi bạn cần làm việc với một phần của dữ liệu.

Khi chúng ta kết thúc hành trình với câu lệnh TOP, tôi hy vọng bạn cảm thấy tự tin hơn về việc sử dụng tính năng mạnh mẽ này của SQL. Nhớ rằng, thực hành làm nên完美! Hãy thử viết các truy vấn của riêng bạn, thử nghiệm với các kết hợp khác nhau, và sớm bạn sẽ đứng đầu bảng trong việc thành thạo SQL!

Chúc các bạn vui vẻ trong việc truy vấn, và mong rằng dữ liệu của bạn luôn được cấu trúc tốt và các truy vấn của bạn luôn nhanh như chớp!

Credits: Image by storyset