FPTShop.com.vn
Giỏ hàng
  • iphone 16
  • laptop
  • apple watch
  • ipad
  • máy lạnh
  • carseat
  • samsung
  • quạt điều hòa
  • Tivi VSP giảm 2.5 triệuTivi VSP giảm 2.5 triệu
  • Điện máy giảm giáĐiện máy giảm giá
  • Sale lương vềSale lương về
  • Lọc nước từ 3.290kLọc nước từ 3.290k
  • Sim du lịchSim du lịch
  • Robot hút bụi từ 1.490kRobot hút bụi từ 1.490k
  • Deal chớp nhoángDeal chớp nhoáng
  1. Trang chủ/
  2. Tin tức/
  3. Đánh giá - Tư vấn/
  4. Bài viết
Giải thích lệnh ORDER BY trong SQL là gì cho người mới bắt đầu với ví dụ chi tiết
https://fptshop.com.vn/https://fptshop.com.vn/
Ngọc Tuyền
1 năm trước

Giải thích lệnh ORDER BY trong SQL là gì cho người mới bắt đầu với ví dụ chi tiết

ORDER BY trong SQL là một mệnh đề quan trọng giúp sắp xếp kết quả của câu lệnh SELECT theo thứ tự mong muốn. Lệnh này được dùng để phân loại dữ liệu theo thứ tự tăng hoặc giảm dần, dựa trên một hoặc nhiều cột. Hãy cùng FPT Shop tìm hiểu cách sử dụng lệnh ORDER BY trong bài viết sau nhé.

Chia sẻ:
Cỡ chữ nhỏ
Cỡ chữ lớn
Nội dung bài viết
Cơ bản về ORDER BY trong SQL?
Ví dụ minh họa về ORDER BY trong SQL
Một vài lưu ý
Tạm kết

Nếu bạn đang tự mài mò tìm hiểu về SQL và gặp trăn trở với lệnh ORDER BY thì mời bạn hãy theo dõi hết bài viết dưới đây để hiểu rõ ORDER BY trong SQL là gì và cách sử dụng như thế nào nhé!

Cơ bản về ORDER BY trong SQL?

ORDER BY là gì?

Lệnh ORDER BY trong SQL được dùng trong lệnh SELECT để sắp xếp các kết quả theo thứ tự tăng dần hoặc giảm dần dựa trên một cột hoặc nhiều cột. Nhờ khả năng phân loại theo nhiều cột mà lệnh này rất hữu ích khi bạn cần phân loại dữ liệu theo thứ bậc, chẳng hạn như phân loại theo tên, ngày sinh, chiều cao rồi mới tới cân nặng của người đó.  

Lệnh ORDER BY thường đứng sau lệnh WHERE, HAVING và GROUP BY. 

Một điểm cần chú ý là với lệnh ORDER BY, bạn có thể dùng từ khóa ASC (Ascending) ở cuối để kết quả hiển thị thứ tự tăng dần và DESC (Descending) để dữ liệu phân loại theo thứ tự giảm dần. Tuy nhiên, một vài database sẽ mặc định phân loại kết quả theo thứ tự tăng dần, do đó bạn không cần thêm từ khóa ASC cũng được.

Bên cạnh đó, ngoài phân loại theo thứ tự tăng hoặc giảm dần, ORDER BY trong SQL còn có thể phân loại dữ liệu trong bảng database theo thứ tự mà bạn muốn.

Cú pháp lệnh ORDER BY là gì?

Như đã nhắc ở trên, ORDER BY là một lệnh nằm trong lệnh SELECT, do đó ta không sử dụng nó một cách riêng lẻ mà sẽ có cú pháp cơ bản với câu lệnh SELECT như sau:

SELECT cot

FROM ten_bang

[WHERE dieu_kien]

[ORDER BY cot_1, cot_2,..., cot_N] [ASC | DESC];

Trong đó, bạn chọn (SELECT) cột dữ liệu mình muốn sắp xếp từ (FROM) bảng dữ liệu. Ví dụ, nếu bạn chọn cột 1 và dùng lệnh ORDER BY cot_1 DESC thì có nghĩa là bạn muốn sắp xếp dữ liệu của cột 1 theo thứ tự giảm dần.

(Ý nghĩa của dấu ngoặc vuông là có thể có hoặc có thể không).

Ví dụ minh họa về ORDER BY trong SQL

Để dễ hình dung hơn thì hãy cùng xem một ví dụ chi tiết nhé! 

Chẳng hạn, FPT Shop đang có một bảng dữ liệu tên “thethao” gồm các cột Tên, Quốc Tịch, Giới Tính, Ngày Sinh, Chiều Cao và Cân Nặng của các vận động viên thể thao như hình sau.

Bảng dữ liệu

1. ORDER BY cơ bản

Ví dụ bạn đang muốn biết tên và chiều cao của các vận động viên với trường chiều cao được sắp xếp theo thứ tự tăng dần. Bạn viết như sau:

SELECT Ten, Chieu_Cao

FROM `my-project-01-410403.fptshop.thethao`

ORDER BY Chieu_Cao;

Kết quả được trả về như sau:

Sắp xếp tăng dần

Ngược lại, nếu bạn cần sắp xếp từ chiều cao của người cao nhất đến người thấp nhất trong các vận động viên, bạn thêm từ khóa DESC vào cuối câu như sau:

SELECT Ten, Chieu_Cao

FROM `my-project-01-410403.fptshop.thethao`

ORDER BY Chieu_Cao DESC;

Kết quả được trả về là:

Sắp xếp giảm dần

2. ORDER BY với mệnh đề WHERE

Tiếp tục với bảng dữ liệu “thethao” ở ví dụ trên, chẳng hạn bạn đang cần biết tên và cân nặng của các vận động viên nữ với cân nặng sắp xếp theo thứ tự tăng dần. Lúc này, bạn đang đặt thêm một điều kiện về giới tính của vận động viên và cần phải sử dụng đến mệnh đề WHERE. Bạn có thể viết như sau:

SELECT Ten, Gioi_Tinh, Can_Nang

FROM `my-project-01-410403.fptshop.thethao`

WHERE Gioi_Tinh = 'female'

ORDER BY Can_Nang;

Kết quả nhận được sẽ là:

ORDER BY với WHERE

3. ORDER BY với mệnh đề TOP/LIMIT

Bạn có thể dùng mệnh đề TOP hoặc LIMIT để hạn chế số lượng hàng bằng cách phân loại nó theo thứ tự giảm hoặc tăng dần. 

Đối với mệnh đề TOP, bạn sử dụng ngay sau SELECT với cú pháp như sau: 

SELECT TOP N cot_1, cot_2

Trong đó, N là số lượng hàng bạn muốn truy xuất.

Ngoài ra, đối với mệnh đề LIMIT, bạn sẽ sử dụng ở cuối cùng, sau lệnh ORDER BY. Bạn viết như sau:
LIMIT N;

Trong đó, N là số lượng hàng bạn muốn truy xuất.

Vẫn tiếp tục với ví dụ về các vận động viên thể thao, bạn đang muốn biết tên của 3 vận động viên có chiều cao cao nhất. Lúc này, bạn có thể dùng ORDER BY để sắp xếp chiều cao của các vận động viên theo thứ tự từ cao xuống thấp (giảm dần), sau đó dùng mệnh đề TOP hoặc LIMIT để giới hạn 3 người đầu tiên. 

Ở đây, FPT Shop sẽ hướng dẫn bạn dùng ORDER BY với mệnh đề LIMIT như sau:

SELECT Ten, Chieu_Cao

FROM `my-project-01-410403.fptshop.thethao`

ORDER BY Chieu_Cao DESC

LIMIT 3;

Kết quả trả về như hình dưới đây:

ORDER BY với LIMIT

Đừng quên rằng thêm từ khóa DESC để sắp xếp theo thứ tự giảm dần nhé!

4. ORDER BY kết hợp với các mệnh đề

Nếu đề bài mà bạn cần giải quyết phức tạp hơn, chẳng hạn như bạn muốn biết tên, cân nặng của top 5 vận động viên nam đến từ Mỹ (USA), thì bạn cần kết hợp các lệnh mà FPT Shop đã giới thiệu cho bạn để hoàn thành đề bài này. 

Đoạn lệnh bạn cần viết như sau:

SELECT Ten, Quoc_Tich, Gioi_Tinh, Chieu_Cao

FROM `my-project-01-410403.fptshop.thethao`

WHERE Gioi_Tinh = 'male' AND Quoc_Tich = 'USA'

ORDER BY Chieu_Cao DESC

LIMIT 5;

Kết quả nhận được sẽ như hình dưới đây:

Kết hợp các lệnh

6. Trường hợp ORDER BY nhiều cột

Bạn hãy xem thử trường hợp sau đây:

SELECT Ten, Chieu_Cao, Can_Nang

FROM `my-project-01-410403.fptshop.thethao`

ORDER BY Chieu_Cao, Can_Nang;

Nhiều bạn sẽ lầm tưởng rằng lúc này kết quả trả về sẽ sắp xếp cùng lúc cả 2 cột chiều cao và cân nặng theo thứ tự tăng dần. Tuy nhiên, điều này có nghĩa là nó sẽ sắp xếp tăng dần theo cột chiều cao trước, nếu có hàng nào mà giá trị chiều cao bị giống nhau thì nó sẽ tiếp tục dựa vào cân nặng để sắp xếp (tăng dần).

Một trường hợp khác như sau:

SELECT Ten, Chieu_Cao, Can_Nang

FROM `my-project-01-410403.fptshop.thethao`

ORDER BY Chieu_Cao DESC, Can_Nang [ASC];

Kết quả trả về lúc này sẽ sắp xếp giảm dần theo cột chiều cao trước, nếu có hàng nào mà giá trị chiều cao bị giống nhau thì nó sẽ tiếp tục dựa vào cân nặng để sắp xếp (tăng dần).

Ngoài ra, một mẹo giúp bạn sử dụng ORDER BY một cách nhanh chóng hơn là thay vì dùng cú pháp ORDER BY cot_1, cot_2,..., cot_N thì bạn hoàn toàn có thể dùng số để thay thế. Số này được tính ở lệnh SELECT. Bạn hãy xem ví dụ sau:

SELECT Ten, Chieu_Cao, Can_Nang, Quoc_Tich

FROM `my-project-01-410403.fptshop.thethao`

ORDER BY 3, 4 DESC;

Sau lệnh SELECT, trường đầu tiên sẽ được tính là 1, vậy thì Ten là 1, lần lượt có Chieu_Cao là 2, Can_Nang là 3 và Quoc_Tich là 4. Nếu bạn cần sắp xếp theo cân nặng trước, sau đó là quốc tịch thì ở lệnh ORDER BY, bạn chỉ cần ghi 3 và 4 tương ứng là được. Điều này sẽ giúp bạn tiết kiệm thời gian và công sức hơn thay vì phải viết lại tên của cột cần sắp xếp.

Một vài lưu ý

  • Không phải tất cả các database đều hỗ trợ mệnh đề TOP. Một database phổ biến hỗ trợ mệnh đề TOP là SQL Server, còn MySQL và Google Bigquery (data warehouse) hỗ trợ mệnh đề LIMIT để lấy ra số lượng hạn chế các bản ghi. Trong khi Oracle sử dụng lệnh ROWNUM và FETCH FIRST n ROWS ONLY để thực hiện thao tác này.
  • Những ví dụ của bài viết này được thực hiện trên Google BigQuery - một kho dữ liệu trên nền tảng điện toán đám mây của Google, cho phép bạn chạy các truy vấn siêu nhanh trên các tập dữ liệu lớn mà không phải lo lắng về cơ sở hạ tầng. Tuy nhiên, bạn cũng có thể sử dụng lệnh này trên các Database khác. 

Tạm kết

Vậy là FPT Shop đã chia sẻ cho bạn “tất tần tật” về ORDER BY trong SQL. Hy vọng với những chia sẻ và ví dụ minh họa vô cùng chi tiết này, bạn đã nắm rõ ORDER BY trong SQL là gì và biết cách sử dụng để lấy dữ liệu một cách thuận lợi hơn nhé.

Xem thêm:

Index trong SQL: Những thông tin cơ bản mà bạn nên nắm vững khi sử dụng index

MySQL là gì? So sánh khác nhau giữa MySQL và SQL Server

Một chiếc laptop mỏng nhẹ, chất lượng sẽ là công cụ đắc lực giúp các bạn nâng cao hiệu quả công việc và dễ dàng làm việc với dữ liệu hơn đấy. Nếu bạn đang tìm kiếm một chiếc laptop cho mình thì mời bạn ghé qua FPT Shop để tham khảo các dòng laptop mới nhất ngay nhé!

Laptop chất lượng

Chủ đề
hỏi đáp
thuật ngữ công nghệ
  • Nổi bật
  • Tin mới
  • Điện máy - Gia dụng
  • Khuyến mãi
  • Đánh giá - Tư vấn
  • Thủ thuật
  • Video hot
  • Giải trí
  • Góc game thủ
  • Hỏi đáp
  • App & Game