Lệnh DISTINCT trong SQL

4576 lượt xem

Giải đáp lệnh DISTINCT trong SQL là gì, cú pháp như thế nào. Hướng dẫn cách dùng, ý nghĩa tên biến, giá trị biến và ví dụ minh họa cụ thể.

Các câu hỏi về lệnh DISTINCT

Cấu trúc dữ liệu SQL có rất nhiều câu lệnh khác nhau và một số các câu lệnh được sử dụng khá thường xuyên đó là DISTINCT. Vậy DISTINCT trong SQL là gì? Cú pháp như thế nào, dùng ra sao? Tất cả sẽ được chúng tôi giải đáp ngay sau đây!

1. Cú pháp SELECT DISTINCT trong cấu trúc dữ liệu SQL?

Hàm DISTINCT thuộc ngôn ngữ truy vấn SQL được sử dụng nhằm mục đích loại bỏ những giá trị trùng lặp ở bộ kết quả trả về khi truy vấn. Các bạn chỉ có thể sử dụng mệnh đề DISTINCT thuộc lệnh SELECT mới thực thi được.

Dưới đây là cú pháp SELECT DISTINCT trong SQL:

SELECT DISTRINCT “biểu thức”

FROM “bảng”

[WHERE “điều kiện”];

Trong đó:

  • “biểu thức”: Cột hoặc giá trị tính toán mà các bạn muốn lấy kết quả
  • “bảng”: Bảng được dùng để lấy bản ghi và mệnh đề FROM phải có tối thiểu 1 bảng
  • WHERE “điều kiện”: Bạn có thể đưa ra điều kiện tùy chọn nhưng điều kiện phải đảm bảo bản ghi đáp ứng được

2. Những lưu ý quan trọng về lệnh DISTINCT

  • Nếu hàm DISTINCT trong SQL chỉ có duy nhất 1 biểu thức thì cuối cùng truy vấn trả về sẽ là các giá trị duy nhất của biểu thức đó
  • Nếu lệnh DISTINCT khi dùng SQL có nhiều hơn 1 biểu thức thì kết quả truy vấn trả về sẽ là tất cả giá trị duy nhất của các biểu thức đó
  • Sử dụng DISTINCT khi lập trình SQL giá trị NULL cũng được tính. Do đó, kết quả giá trị trả về của lệnh này sẽ có cả giá trị NULL duy nhất

3. Cách dùng SELECT DISTINCT trong SQL

Dưới đây là phần hướng dẫn cách sử dụng mệnh đề DISTINCT trong SQL, được chia thành ví dụ cơ bản và các ví dụ nâng cao khi kết hợp với các câu lệnh SQL khác:

SELECT DISTINCT nhiều cột

Sử dụng DISTINCT với JOIN để lấy dữ liệu từ nhiều bảng:

SELECT DISTINCT customers.customer_id, orders.order_date
FROM customers
JOIN orders ON customers.customer_id = orders.customer_id;

DISTINCT khi chọn một cột

Sử dụng DISTINCT để loại bỏ các giá trị trùng lặp từ một cột

SELECT DISTINCT department
FROM employees;

SELECT DISTINCT ORDER BY

Kết hợp DISTINCT với ORDER BY để sắp xếp kết quả:

SELECT DISTINCT product_category
FROM products
ORDER BY product_category ASC;

SELECT DISTINCT COUNT

Kết hợp DISTINCT với COUNT để đếm số lượng giá trị duy nhất:

SELECT COUNT(DISTINCT product_category)
FROM products;

4. Một số ví dụ về DISTINCT trong ngôn ngữ truy vấn có cấu trúc SQL

Để các bạn có thể hiểu rõ hơn về SELECT DISTINCT chúng tôi xin đưa ra ví dụ minh họa sau:

Giải sử, chúng ta có một bảng SINHVIEN với các giá trị như bản ghi như sau:

ID TEN TUOI KHOAHOC HOCPHI
1 Hoang 21 CNTT 4
2 Viet 19 DTVT 3
3 Thanh 18 KTDN 4
4 Nhan 19 CK 4.5
5 Huong 20 TCNH 5

Trước hết chúng ta sẽ thực hiện truy vấn SELECT để trả về kết quả của bản sao HOCPHI. Câu lệnh như sau:

SQL> SELECT HOCPHI FROM SINHVIEN

ORDER BY HOCPHI;

Kết quả thu được như sau:

HOCPHI
4
3
4
4.5
5

Tiếp theo, chúng ta sẽ sử dụng hàm DISTINCT để truy vấn:

SQL> SELECT DISTINCT HOCPHI FROM SINHVIEN

ORDER BY HOCPHI;

Kết quả thu được là:

HOCPHI
4
5
4.5
5

5. Kết luận về DISTINCT

Trên đây là giải đáp của chúng tôi về hàm DISTINCT của cấu trúc dữ liệu SQL là gì, chúng được tận dụng cho mục đích nào. Bên cạnh đó là một số ví dụ để các bạn có thể hiểu rõ hơn về hàm này. Đây là hàm có giá trị thiết yếu và được sử dụng nhiều khi học về cấu trúc dữ liệu. Vì vậy, hãy cố gắng hiểu và thực hành với hàm này thật nhiều để tận dụng thành thạo nhất!