SQL - Operator INTERSECT: Hướng dẫn thân thiện cho người mới bắt đầu

Xin chào các bạn 未来 SQL wizard! Hôm nay, chúng ta sẽ bắt đầu một hành trình thú vị vào thế giới của SQL, cụ thể là tập trung vào toán tử INTERSECT. Đừng lo lắng nếu bạn mới bắt đầu học lập trình - tôi sẽ là người hướng dẫn thân thiện của bạn, giải thích mọi thứ từng bước một. Vậy, hãy lấy một cốc đồ uống yêu thích của bạn, và chúng ta cùng bắt đầu!

SQL - INTERSECT Operator

Toán tử INTERSECT trong SQL

INTERSECT là gì?

Hãy tưởng tượng bạn có hai bộ dữ liệu, và bạn muốn tìm ra những gì chúng có chung. Đó chính xác là điều mà toán tử INTERSECT trong SQL làm! Nó giống như tìm ra phần trùng giữa hai vòng tròn trong sơ đồ Venn.

Hãy bắt đầu với một ví dụ đơn giản:

SELECT column1 FROM table1
INTERSECT
SELECT column1 FROM table2;

Truy vấn này sẽ trả về tất cả các giá trị duy nhất tồn tại trong cả table1 và table2. Đúng là rất thú vị phải không?

Ví dụ thực tế

Giả sử chúng ta có hai bảng: students_mathstudents_science. Chúng ta muốn tìm ra những học sinh nào đã đăng ký cả hai lớp.

SELECT student_id FROM students_math
INTERSECT
SELECT student_id FROM students_science;

Truy vấn này sẽ cho chúng ta danh sách các ID học sinh xuất hiện trong cả hai bảng, hiệu quả là hiển thị cho chúng ta các học sinh tham gia cả toán và khoa học.

Những điểm quan trọng cần nhớ

  1. INTERSECT chỉ trả về các giá trị duy nhất.
  2. Số lượng và thứ tự các cột phải相同 trong cả hai câu lệnh SELECT.
  3. Các loại dữ liệu của các cột tương ứng phải khả thi.

Sử dụng INTERSECT với toán tử BETWEEN

Bây giờ, hãy làm cho mọi thứ thú vị hơn một chút bằng cách kết hợp INTERSECT với toán tử BETWEEN. Toán tử BETWEEN chọn các giá trị trong một phạm vi xác định.

Ví dụ: Tìm ra các độ tuổi chung

Giả sử chúng ta có hai bảng: employees_department_aemployees_department_b. Chúng ta muốn tìm ra các độ tuổi chung giữa hai phòng ban, nhưng chỉ cho nhân viên trong độ tuổi từ 25 đến 35.

SELECT age FROM employees_department_a WHERE age BETWEEN 25 AND 35
INTERSECT
SELECT age FROM employees_department_b WHERE age BETWEEN 25 AND 35;

Truy vấn này sẽ trả về các độ tuổi tồn tại trong cả hai phòng ban, nhưng chỉ trong phạm vi xác định. Nó giống như tìm ra phần trùng giữa hai bộ dữ liệu, nhưng chúng ta đã đặt bộ lọc cho mỗi bộ dữ liệu trước!

Sử dụng INTERSECT với toán tử IN

Toán tử IN cho phép bạn xác định nhiều giá trị trong một câu lệnh WHERE. Hãy xem chúng ta có thể sử dụng nó như thế nào với INTERSECT.

Ví dụ: Tìm ra các sản phẩm chung

Hãy tưởng tượng chúng ta có hai bảng: online_storephysical_store. Chúng ta muốn tìm ra các sản phẩm có sẵn trong cả hai cửa hàng, nhưng chỉ cho các danh mục nhất định.

SELECT product_id FROM online_store WHERE category IN ('Electronics', 'Books', 'Toys')
INTERSECT
SELECT product_id FROM physical_store WHERE category IN ('Electronics', 'Books', 'Toys');

Truy vấn này sẽ cho chúng ta các ID sản phẩm có sẵn trong cả cửa hàng trực tuyến và cửa hàng vật lý, nhưng chỉ cho các danh mục Điện tử, Sách và Đồ chơi. Nó giống như tạo một danh sách ngắn cho mỗi cửa hàng và sau đó tìm ra những gì chúng có chung!

Sử dụng INTERSECT với toán tử LIKE

Toán tử LIKE được sử dụng trong một câu lệnh WHERE để tìm kiếm một mẫu cụ thể trong một cột. Hãy xem chúng ta có thể kết hợp nó với INTERSECT để thực hiện một phép so khớp mẫu!

Ví dụ: Tìm ra các tên người dùng chung

Giả sử chúng ta có hai bảng: forum_usersblog_users. Chúng ta muốn tìm ra các tên người dùng tồn tại trong cả hai nền tảng, nhưng chỉ những tên bắt đầu với 'tech_'.

SELECT username FROM forum_users WHERE username LIKE 'tech_%'
INTERSECT
SELECT username FROM blog_users WHERE username LIKE 'tech_%';

Truy vấn này sẽ trả về các tên người dùng tồn tại trong cả diễn đàn và blog, nhưng chỉ những tên bắt đầu với 'tech_'. Nó giống như tìm ra những người đam mê công nghệ hoạt động trên cả hai nền tảng!

Kết luận

Và đây bạn đã có, các bạn! Chúng ta đã khám phá toán tử INTERSECT và cách nó có thể kết hợp với các toán tử SQL khác để thực hiện các truy vấn mạnh mẽ. Nhớ rằng, thực hành là chìa khóa để thành công, vì vậy đừng ngần ngại thử các ví dụ này và tạo ra của riêng bạn.

Dưới đây là bảng tóm tắt các phương pháp chúng ta đã xem xét:

Phương pháp Mô tả
INTERSECT Trả về các hàng duy nhất được output bởi cả hai câu lệnh SELECT
INTERSECT với BETWEEN Tìm ra các giá trị chung trong một phạm vi xác định
INTERSECT với IN Tìm ra các giá trị chung từ một danh sách các khả năng
INTERSECT với LIKE Tìm ra các giá trị chung khớp với một mẫu cụ thể

SQL có thể看起来 đáng sợ ban đầu, nhưng với mỗi truy vấn bạn viết, bạn lại gần hơn một bước đến việc trở thành một chuyên gia manipulate dữ liệu. Hãy tiếp tục thực hành, giữ vững sự tò mò, và sớm bạn sẽ viết các truy vấn phức tạp một cách dễ dàng!

Nhớ rằng, trong thế giới cơ sở dữ liệu, bạn là thám tử, và SQL là kính lúp của bạn. Chúc bạn thành công trong việc truy vấn, và hy vọng rằng các INTERSECT của bạn luôn tìm ra những gì bạn đang tìm kiếm!

Credits: Image by storyset