Khi bạn đang làm việc với cơ sở dữ liệu, có thể có lúc bạn muốn nhận tất cả các giá trị duy nhất trong một tập dữ liệu cụ thể. Ví dụ:bạn có thể muốn lấy danh sách tên các sản phẩm bạn đã bán trước đây hoặc bạn có thể muốn lấy danh sách tất cả các thể loại phim khác nhau tồn tại trong cơ sở dữ liệu phim.
SQL
có một chức năng tích hợp có thể giúp bạn truy xuất thông tin này:DISTINCT
. DISTINCT
toán tử cho phép bạn loại bỏ các bản ghi trùng lặp để bạn có thể truy xuất tất cả các tổ hợp giá trị duy nhất trong một tập dữ liệu.
Trong hướng dẫn này, chúng tôi sẽ phân tích những điều cơ bản về DISTINCT
trong SQL
và khi nào bạn có thể sử dụng toán tử này.
Trình làm mới truy vấn SQL
Để lấy thông tin từ cơ sở dữ liệu, bạn phải viết một truy vấn. SQL
các truy vấn hầu như luôn bắt đầu bằng SELECT
và chúng chỉ định thông tin bạn muốn lấy từ cơ sở dữ liệu. Đây là cú pháp cơ bản cho SQL
truy vấn:
SELECT column_name FROM table_name WHERE your_query_conditions;
Hãy sử dụng một ví dụ để minh họa các truy vấn đang hoạt động. Truy vấn sau sẽ trả về tên và chức danh của tất cả nhân viên làm việc cho doanh nghiệp của chúng tôi:
SELECT name, title FROM employees;
Mã của chúng tôi trả về:
name | tiêu đề |
Luke | Nhân viên bán hàng |
Mike | Nhân viên bán hàng |
Hannah | Nhân viên bán hàng |
Geoff | Nhân viên kinh doanh cấp cao |
Alexis | Nhân viên bán hàng |
Jonah | Phó Giám đốc Kinh doanh |
Emma | Giám đốc Tiếp thị |
Nếu bạn muốn truy xuất nhiều cột, bạn có thể làm như vậy bằng cách tách tên cột bằng dấu phẩy như chúng tôi đã làm ở trên. Hoặc nếu bạn muốn lấy thông tin từ mọi cột, bạn có thể sử dụng dấu hoa thị (*
), đại diện cho tất cả các cột trong bảng.
Khi viết truy vấn, chúng ta có thể sử dụng WHERE
để lọc các bản ghi đáp ứng một tập hợp các điều kiện cụ thể. Ví dụ:nếu chúng tôi muốn có được tất cả các cộng tác viên bán hàng làm việc cho doanh nghiệp của mình, chúng tôi có thể sử dụng truy vấn sau:
81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.
Sinh viên tốt nghiệp bootcamp trung bình dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.
SELECT name, title FROM employees WHERE title = 'Sales Associate':
Truy vấn của chúng tôi trả về như sau:
name | tiêu đề |
Luke | Nhân viên bán hàng |
Mike | Nhân viên bán hàng |
Hannah | Nhân viên bán hàng |
Alexis | Nhân viên bán hàng |
(4 hàng)
Bây giờ chúng ta đã biết những điều cơ bản về truy vấn, chúng ta có thể khám phá cách sử dụng DISTINCT
trong SQL
.
Phân biệt SQL
Khi bạn thu thập dữ liệu từ cơ sở dữ liệu, kết quả có thể chứa các hàng hoặc giá trị trùng lặp. Giả sử chúng tôi muốn có danh sách tất cả các chức danh mà nhân viên của chúng tôi nắm giữ. Nếu chúng tôi sử dụng SELECT
tiêu chuẩn truy vấn, chúng tôi sẽ nhận được các giá trị trùng lặp. Đây là một ví dụ:
SELECT title FROM employees;
Truy vấn của chúng tôi trả về kết quả sau:
title |
Nhân viên bán hàng Cộng tác viên bán hàng Cộng tác viên bán hàng Cộng tác viên bán hàng cấp cao Cộng tác viên bán hàng Phó giám đốc kinh doanh Giám đốc Tiếp thị |
(7 hàng)
Như bạn có thể thấy, tiêu đề Sales Associate
xuất hiện bốn lần, bởi vì có bốn nhân viên giữ chức danh đó. Nhưng điều gì sẽ xảy ra nếu chúng ta chỉ muốn biết những chức danh có trong cơ sở dữ liệu thay vì bao nhiêu người có chức danh đó?
Đó là nơi SQL DISTINCT
được đưa vào. Bằng cách sử dụng SQL DISTINCT
, chúng tôi có thể xóa tất cả dữ liệu trùng lặp khỏi một truy vấn.
DISTINCT
từ khóa được sử dụng cùng với SELECT
nhà điều hành. Dưới đây là một ví dụ về việc chạy cùng một truy vấn từ trên, nhưng với DISTINCT
nhà điều hành hiện tại:
SELECT DISTINCT title FROM employees;
Truy vấn của chúng tôi trả về như sau:
title |
Phó Giám đốc Kinh doanh Cộng tác viên bán hàng Cộng tác viên bán hàng cấp cao Giám đốc Tiếp thị |
(4 hàng)
Truy vấn của chúng tôi trả về danh sách tất cả các chức danh mà nhân viên nắm giữ. Tuy nhiên, nó không lặp lại bất kỳ chức danh nào do nhiều hơn một nhân viên nắm giữ. Chúng tôi không có giá trị trùng lặp nào trong đầu ra của mình.
DISTINCT
toán tử đặc biệt hữu ích khi bạn đang làm việc với các tập dữ liệu lớn. Trong ví dụ của chúng tôi ở trên, chúng tôi chỉ có bảy nhân viên, nhưng nếu chúng tôi có năm trăm nhân viên, sẽ rất khó để chúng tôi biết mọi người nắm giữ những chức danh nào nếu không sử dụng DISTINCT
nhà điều hành.
Kết luận
Bây giờ bạn biết cách sử dụng DISTINCT
toán tử trên SQL
máy chủ.
Như chúng ta đã thảo luận, SQL SELECT DISTINCT
cho phép bạn tìm nạp dữ liệu từ một bảng và xóa bất kỳ hàng hoặc giá trị trùng lặp nào khỏi kết quả. Ví dụ:nếu bạn muốn có danh sách tất cả các chi nhánh của công ty, bạn có thể sử dụng DISTINCT
để tạo ra một danh sách. DISTINCT
đặc biệt hữu ích khi bạn đang làm việc với các tập dữ liệu lớn hơn, nơi các tập dữ liệu trùng lặp có thể gây mất tập trung.