Sự khác biệt SQL giữa các toán tử Union, Union All và Union Distinct

Su Khac Biet Sql Giua Cac Toan Tu Union Union All Va Union Distinct



SQL cung cấp cho chúng ta toán tử UNION cho phép chúng ta kết hợp các tập kết quả của hai hoặc nhiều câu lệnh SELECT thành một tập kết quả duy nhất. Có ba loại toán tử UNION chính trong SQL: UNION, UNION ALL và UNION DISTINCT.

Hướng dẫn này khám phá ba loại UNION này và cung cấp các ví dụ thực tế và thực tế về cách làm việc với chúng.







GHI CHÚ: Trong ví dụ này, chúng tôi sẽ sử dụng cơ sở dữ liệu Sakila mẫu cho mục đích trình diễn. Đảm bảo rằng bạn đã cài đặt nó trước khi thực hiện các lệnh này. Bạn có thể xem hướng dẫn của chúng tôi về điều đó để tìm hiểu thêm.



Toán tử UNION SQL

Như đã đề cập, toán tử UNION cho phép chúng ta kết hợp tập kết quả của hai hoặc nhiều câu lệnh chọn và loại bỏ các giá trị trùng lặp. Cú pháp của toán tử UNION như sau:



CHỌN cột1, cột2, ...
TỪ bảng1
LIÊN HIỆP
CHỌN cột1, cột2, ...
TỪ bảng2;


Trong cú pháp ví dụ trước, chúng ta sử dụng các câu lệnh SELECT để truy xuất dữ liệu từ các bảng đã chỉ định. Toán tử UNION sau đó kết hợp hai tập hợp kết quả thành một tập hợp. Hãy để chúng tôi lấy một ví dụ về cách thực hiện điều này bằng cách sử dụng bảng diễn viên được xác định trong cơ sở dữ liệu Sakila.





Hãy xem xét ví dụ truy vấn sau đây truy xuất tên và họ của các tác nhân từ bảng tác nhân và bảng của khách hàng:

CHỌN first_name, last_name
TỪ diễn viên
LIÊN HIỆP
CHỌN first_name, last_name
TỪ khách hàng; CHỌN first_name, last_name
TỪ diễn viên
LIÊN HIỆP
CHỌN first_name, last_name
TỪ khách hàng;


Truy vấn trước đó lấy tên và họ từ cả bảng tác nhân và khách hàng, đồng thời trả về các giá trị dưới dạng một kết quả.



Một ví dụ đầu ra như sau:

SQL UNION ALL Toán tử

Không giống như toán tử UNION loại bỏ các giá trị trùng lặp khỏi tập kết quả, toán tử UNION trả về tất cả các hàng của bảng bao gồm cả các giá trị trùng lặp.

Cú pháp như sau:

CHỌN cột1, cột2, ...
TỪ bảng1
CÔNG ĐOÀN TẤT CẢ
CHỌN cột1, cột2, ...
TỪ bảng2;


Ví dụ sau đây chọn họ và tên từ bảng diễn viên và khách hàng trong cơ sở dữ liệu Sakila:

CHỌN first_name, last_name
TỪ diễn viên
CÔNG ĐOÀN TẤT CẢ
CHỌN first_name, last_name
TỪ khách hàng;


Một ví dụ đầu ra như sau:

SQL UNION DISTINCT Toán tử

Loại toán tử hợp khác là UNION DISTINCT. Toán tử này chỉ đơn giản là một bản sao của toán tử UNION thực hiện một hành động tương tự.

Cú pháp như sau:

CHỌN cột1, cột2, ...
TỪ bảng1
ĐOÀN QUẬN
CHỌN cột1, cột2, ...
TỪ bảng2;


Các câu lệnh SELECT truy xuất dữ liệu từ các bảng đã chỉ định và toán tử UNION DISTINCT kết hợp các tập kết quả thành một tập kết quả duy nhất bao gồm các hàng duy nhất.

Trong ví dụ về cơ sở dữ liệu Sakila, chúng ta có thể chạy lệnh sau:

CHỌN first_name, last_name
TỪ diễn viên
ĐOÀN QUẬN
CHỌN first_name, last_name
TỪ khách hàng;


Điều này sẽ trả về kết quả tương tự như toán tử UNION.

Phần kết luận

Chúng tôi đã học cách làm việc với các loại UNION khác nhau trong SQL. Toán tử UNION kết hợp tập kết quả của hai hoặc nhiều câu lệnh chọn và loại bỏ các bản ghi trùng lặp. UNION ALL thực hiện một hành động tương tự nhưng bao gồm bất kỳ hàng trùng lặp nào. Cuối cùng, UNION DISTINCT giống hệt với toán tử UNION gốc.