Câu lệnh SELECT TOP trong SQL | Cú pháp và cách sử dụng

Nội dung được viết bởi Kim Thu

Khi truy vấn dữ liệu trên SQL thì việc sử dụng các công thức tính toán là điều bắt buộc khi chúng ta thực hiện đánh giá hoặc phân tích dữ liệu nào đó. Và để lựa chọn ra những đối tượng tiêu biểu của một trường đó thì chúng ta sử dụng câu lệnh SELECT TOP trong SQL.

Vậy định nghĩa, cú pháp, cách sử dụng, và ứng dụng thực tế của câu lệnh SELECT TOP như thế nào? Cùng Gitiho tìm hiểu trong bài viết này nhé!

Cú pháp SELECT TOP trong SQL Server

Trong SQL, hàm TOP được sử dụng khi chúng ta muốn giới hạn số lượng hàng trả về từ một truy vấn SELECT. Nó thường được sử dụng khi bạn chỉ muốn lấy một số lượng cụ thể các hàng từ kết quả truy vấn, chẳng hạn như 5 dòng đầu tiên hoặc 10 dòng đầu tiên.

Cú pháp câu lệnh SELECT TOP:

SELECT TOP (n) column1, column2, ...
FROM table_name
WHERE condition;

Trong đó: 

n: Số lượng hàng mà bạn muốn lấy từ tập kết quả.

column1, column2, ...: Các cột mà bạn muốn truy vấn.

table_name: Tên bảng dữ liệu.

WHERE condition: Điều kiện lọc dữ liệu (tùy chọn).

Ví dụ về câu lệnh SELECT TOP trong mySQL

Giả sử, chúng ta có một bảng dữ liệu Customer_Info, sử dụng câu lệnh SELECT trong SQL để truy vấn dữ liệu từ bảng này, ta nhận được khoảng 2000 bản ghi. 

select * from Customer_Info
Ví dụ về câu lệnh SELECT TOP trong mySQL 1

Mà đôi khi trong truy vấn, chúng ta không cần thiết phải hiển thị hết tất cả số bản ghi đó. Bởi với bảng dữ liệu càng lớn, việc làm xuất hiện càng nhiều bản ghi sẽ càng ảnh hưởng đến hiệu suất và tốc độ truy vấn của SQL. 

Do đó, để tiết kiệm thời gian cho phần mềm, bạn có thể sử dụng câu lệnh SELECT TOP để giới hạn số lượng hàng trả về. 

Ví dụ 1: lấy ra TOP 5 của trường FirstName từ bảng Customer_Info.

Câu lệnh: 

SELECT TOP 5 (FirstName) from Customer_Info

Khi chạy công thức, chúng ta có thể thấy công thức nhanh chóng trả về 5 bản ghi đầu tiên của trường FirstName trong thời gian ngắn.

Ví dụ về câu lệnh SELECT TOP trong mySQL 2

Trường hợp khác, nếu bạn muốn lấy ra toàn bộ TOP 5 của tất cả các trường dữ liệu trong bảng Customer_Info thì bạn hãy sử dụng công thức:

SELECT TOP 5 * from Customer_Info

Kết quả trả về 5 bản ghi chứa đầy đủ thông tin của các trường trong bảng Customer_Info.

Ví dụ về câu lệnh SELECT TOP trong mySQL 3

Hàm TOP đặc biệt hữu ích khi bảng dữ liệu bạn truy vấn lớn, số lượng bản ghi có thể lên tới hàng triệu.

Để hiểu rõ hơn về hàm TOP cùng các câu lệnh khác trong truy vấn SQL, mời bạn đọc tham khảo khóa học SQL sau tại Gitiho:

Ví dụ 2: Hiển thị bảng Sales với 5 giá trị đơn hàng lớn nhất của khách hàng có ID-11864.

Vì yêu cầu đề bài là lấy ra 5 bản ghi có giá trị đơn hàng lớn nhất, nên nếu chỉ sử dụng hàm TOP trong SQL thì kết quả có thể sẽ không phải 5 giá trị lớn nhất. Do đó, chúng ta cần kết hợp thêm câu lệnh Order by trong SQL để sắp xếp và gọi ra 5 bản ghi có giá trị đơn hàng cao nhất.

select TOP 5 * from Sales
where CustomerID-11864
Order by Sales DESC

Cho chạy công thức, chúng ta sẽ nhận được kết quả như sau:

Ví dụ về câu lệnh SELECT TOP trong mySQL  5

Ví dụ 3: Trả về top 5 thu nhập hàng năm của khách hàng có tổng cộng 4 con trong trường TotalChildren.

select TOP 5 YearlyIncome
from Customer_Info
where TotalChildren=4

Như vậy chúng ta đã lấy ra được 5 giá trị thu nhập hàng năm của 5 khách hàng có 4 con. Lưu ý là 5 giá trị này không phải 5 giá trị lớn nhất, mà nó chỉ là 5 giá trị đầu tiên xuất hiện trong bảng Customer_info.

Ví dụ về câu lệnh SELECT TOP trong mySQL  6

Ví dụ 4: Lọc tất cả các khách hàng có 4 con trong bảng Customer_info. Sau đó sắp xếp thu nhập hàng năm giảm dần và chọn ra TOP 5 từ trong đấy.

Ta có công thức:

select TOP 5 * from Customer_Info
where TotalChildren=4
Order By YearlyIncome DESC

Khi chạy công thức, chúng ta sẽ nhận thấy có sự thay đổi trong 5 bản ghi hiển thị so với ví dụ trước. Chúng ta sẽ nhận được TOP 5 bản ghi có giá trị YearlyIncome cao nhất bởi đã được sắp xếp bởi ORDER BY.

Ví dụ về câu lệnh SELECT TOP trong mySQL 7

Tại sao nên dùng hàm TOP trong SQL

Trong thực tế, mệnh đề SQL thường để sử dụng trong trường hợp các Data Analyst muốn:

  • Giới hạn số lượng bản ghi trả về tại một thời điểm nhất định nhằm mục đích phân trang dữ liệu để dễ dàng quản lý hơn.
  • Sử dụng TOP khi chúng ta muốn lấy một số lượng mẫu bản ghi nhất định để nhanh chóng xem xét và đánh giá dữ liệu thay vì phải trích xuất toàn bộ.
  • Khi truy vấn gặp lỗi, chúng ta có có thể sử dụng TOP để hiển thị ra một số lượng bản ghi nhỏ để nhanh chóng kiểm tra công thức đang mắc lỗi ở đâu.
  • Trong trường hợp bạn muốn trực quan hóa số liệu thành biểu đồ, đồ thị, bạn sẽ vẫn cần hiển thị ra một số lượng bản ghi nhỏ để minh họa cho số liệu đang hiển thị trên bản đồ. Khi này, hàm TOP sẽ chính là giải pháp tối ưu.
  • Cuối cùng, lệnh TOP sẽ giúp cải thiện hiệu suất truy vấn khi bạn làm việc với bảng dữ liệu lớn, với số lượng bản ghi khổng lồ.

Kết luận

Trên đây là hướng dẫn về câu lệnh SELECT TOP trong SQL dùng để hạn chế kết quả truy vấn trả về. Hy vọng nó sẽ giúp ích cho quá trình phân tích dữ liệu của bạn. Chúc bạn thành công!

Khóa học giúp bạn làm chủ ngôn ngữ truy vấn dữ liệu phổ biến SQL từ cơ bản đến nâng cao. Từ đó có thể tự tin xây dựng, truy vấn, và tối ưu hóa các cơ sở dữ liệu phức tạp, hỗ trợ phân tích, làm báo cáo và ra quyết định kinh doanh một cách hiệu quả.

Đăng ký học thử để trải nghiệm ngay hôm nay!

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông