Trong khi xử lý dữ liệu trong cơ sở dữ liệu, chúng ta thường có xu hướng sử dụng các toán tử tập hợp trong SQL, để truy xuất dữ liệu theo yêu cầu của chúng ta bằng cách kết hợp hai hoặc nhiều câu lệnh SELECT. Trong bài viết này về SQL UNION, tôi sẽ thảo luận về toán tử UNION được sử dụng để truy xuất dữ liệu theo trình tự sau:
- Toán tử SQL UNION là gì?
- Cú pháp:
- Cú pháp UNION
- UNION ALL Cú pháp
- Sự khác biệt giữa UNION và UNION ALL
- Ví dụ về SQL UNION:
- Ví dụ về nhà điều hành UNION
- Ví dụ về toán tử UNION ALL
- UNION với Bí danh SQL
- UNION với mệnh đề WHERE
- UNION ALL với mệnh đề WHERE
- UNION với JOINS
- ĐOÀN KẾT TẤT CẢ với THAM GIA
Hãy để chúng tôi bắt đầu!
Toán tử SQL UNION là gì?
Như tên cho thấy, toán tử / mệnh đề này được sử dụng để kết hợp các kết quả của hai hoặc nhiều câu lệnh SELECT. Ở đây, mỗi câu lệnh SELECT được sử dụng trong câu lệnh UNION phải có cùng số cột theo cùng một thứ tự. Ngoài ra, tất cả các cột có trong câu lệnh SELECT phải có kiểu dữ liệu tương tự.
Mệnh đề UNION chỉ cung cấp các giá trị duy nhất làm đầu ra. Chỉ trong trường hợp, bạn muốn các giá trị trùng lặp, thì bạn phải sử dụng mệnh đề UNION ALL.
Tiếp tục trong bài viết này về SQL UNION, hãy để chúng tôi hiểu cú pháp.
Cú pháp SQL UNION
Cú pháp UNION
CHỌN Column1, Column2, Column3, ..., ColumnN FROM Table1UNIONSELECT Column1, Column2, Column3, ..., ColumnN FROM Table2;
UNION ALL Cú pháp
CHỌN Column1, Column2, Column3, ..., ColumnN FROM Table1UNION ALLSELECT Column1, Column2, Column3, ..., ColumnN FROM Table2;
Tiếp tục trong bài viết này, chúng ta hãy hiểu sự khác biệt giữa UNION và UNION ALL.
Sự khác biệt giữa UNION SQL và UNION ALL
UNION | LIÊN KẾT TẤT CẢ |
Kết hợp hai hoặc nhiều tập kết quả và không giữ các giá trị trùng lặp. | Kết hợp hai hoặc nhiều tập hợp kết quả và giữ các giá trị trùng lặp. |
Cú pháp: CÔNG ĐOÀN | Cú pháp: ĐOÀN KẾT TẤT CẢ |
Tiếp theo, trong bài viết này về SQL UNION, chúng ta hãy hiểu các cách khác nhau để sử dụng toán tử này.
Ví dụ về UNION SQL và UNION ALL
Để bạn hiểu rõ hơn, tôi sẽ xem xét các bảng sau để hiển thị cho bạn các ví dụ khác nhau.
Bảng nhân viên
EmpID | Tên | EmpAge | Thành phố | Mã Bưu điện | Quốc gia |
1 | Emma | 23 | Berlin | 12109 | Đức |
2 | Rahul | 26 | Mumbai | 400015 | Ấn Độ |
3 | Aayra | 24 | New York | 10014 | Hoa Kỳ |
4 | John | 32 | Luân Đôn | E1 7AE | Vương quốc Anh |
5 | Derek | 29 | New York | 10012 | Hoa Kỳ |
Bảng dự án
ProjectID | Tên | Ngày làm việc | Thành phố | Mã Bưu điện | Quốc gia |
1 | Dự án 1 | 10 | Berlin | 12109 | Đức |
2 | Dự án 2 | 7 | Mumbai | 400015 | Ấn Độ |
3 | Dự án 3 | 20 | Delhi | 110006 | Ấn Độ |
4 | Dự án 4 | 15 | Mumbai | 400015 | Ấn Độ |
5 | Dự án 5 | 28 | Berlin | 12109 | Đức |
Hãy để chúng tôi bắt đầu với các ví dụ.
Ví dụ về SQL UNION
Ví dụ về toán tử UNION
Viết truy vấn để truy xuất các thành phố riêng biệt từ bảng Nhân viên và Dự án.
CHỌN THÀNH PHỐ TỪ NHÂN VIÊNĐầu ra:
Thành phố |
Berlin |
Delhi |
Luân Đôn |
Mumbai |
New York |
Ví dụ về UNION ALL Operator
Viết truy vấn để truy xuất các thành phố từ bảng Nhân viên và Dự án. Tại đây, các giá trị trùng lặp phải được bao gồm.
CHỌN THÀNH PHỐ TỪ NHÂN VIÊN
Đầu ra:
Thành phố |
Berlin |
Berlin |
Berlin |
Delhi |
Luân Đôn |
Mumbai |
Mumbai
|
Mumbai |
New York |
New York |
Tiếp theo trong bài viết này, hãy để chúng tôi hiểu cách sử dụng mệnh đề UNION với Bí danh SQL.
UNION với Bí danh SQL
Bí danh SQL được sử dụng để đặt tên tạm thời cho bảng hoặc cột. Vì vậy, hãy để chúng tôi viết một truy vấn để liệt kê tất cả các nhân viên và dự án duy nhất.
CHỌN 'Nhân viên' AS Loại, Tên, Thành phố, Quốc giaFROM Nhân viênUNIONSELECT 'Dự án', Tên, Thành phố, Quốc gia Dự ánFROM;
Đầu ra:
Loại | Tên | Thành phố | Quốc gia |
Nhân viên | Emma | Berlin | Đức |
Nhân viên | Rahul | Mumbai | Ấn Độ |
Nhân viên | Aayra | New York | Hoa Kỳ |
Nhân viên | John | Luân Đôn | Vương quốc Anh |
Nhân viên | Derek | New York | Hoa Kỳ |
Dự án | Dự án 1 | Berlin | Đức |
Dự án | Dự án 2 | Mumbai | Ấn Độ |
Dự án | Dự án 3 | Delhi | Ấn Độ |
Dự án | Dự án 4 | Mumbai | Ấn Độ |
Dự án | Dự án 5 | Berlin | Đức |
Mệnh đề UNION với WHERE
Viết truy vấn để truy xuất các thành phố Ấn Độ riêng biệt và mã bưu điện của chúng từ cả bảng Nhân viên và Dự án.
CHỌN Thành phố, Mã Bưu điện, Quốc gia FROM Nhân viênWHERE Country ='India'UNIONSELECT Thành phố, Mã Bưu điện, Quốc gia FROM ProjectsWHERE Country =' India'ORDER THEO Thành phố;
Đầu ra:
Thành phố | Mã Bưu điện | Quốc gia |
Delhi | 110006 | Ấn Độ |
Mumbai | 400015 | Ấn Độ |
UNION ALL với mệnh đề WHERE
Viết truy vấn để truy xuất các thành phố ở Ấn Độ và mã bưu điện của họ từ cả bảng Nhân viên và Dự án, nơi cho phép các giá trị trùng lặp
CHỌN Thành phố, Mã Bưu điện, Quốc gia FROM Nhân viênWHERE Country ='India'UNION ALLSELECT Thành phố, Mã Bưu điện, Quốc gia FROM ProjectsWHERE Country =' India'ORDER THEO Thành phố;
Đầu ra:
Thành phố | Mã Bưu điện | Quốc gia |
Delhi | 110006 | Ấn Độ |
Mumbai | 400015 | Ấn Độ |
Mumbai | 400015 | Ấn Độ |
Mumbai | 400015 | Ấn Độ |
Tiếp tục trong bài viết này, chúng ta hãy hiểu cách sử dụng UNION và UNION ALL mệnh đề với JOINS. JOINS trong SQL là các lệnh được sử dụng để kết hợp các hàng từ hai hoặc nhiều bảng, dựa trên một cột có liên quan giữa các bảng đó.
UNION với JOINS
Toán tử SQL UNION có thể được sử dụng với SQL JOINS để truy xuất dữ liệu từ hai bảng khác nhau. Tôi sẽ xem xét bảng sau cùng với bảng Nhân viên để làm ví dụ.
Bảng ProjectDetails
PID | Ngày làm việc | EmpID | CostforProject |
11 | 12 | 4 | 20000 |
22 | 16 | 3 | 35000 |
33 | 30 | 1 | 60000 |
44 | 25 | 3 | 45000 |
55 | 21 | 1 | 50000 |
CHỌN EmpID, Tên, CostforProject TỪ Nhân viên TRÁI THAM GIA Dự án Chi tiết về Nhân viên.EmpID =ProjectDetails.EmpIDUNION CHỌN EmpID, Tên, CostforProject TỪ Nhân viên QUYỀN THAM GIA Dự án Chi tiết Trên Nhân viên.EmpID =ProjectDetails.EmpID;
Đầu ra:
EmpID | Tên | CostforProject |
1 | Emma | 60000 |
1 | Emma | 50000 |
2 | Rahul | NULL |
3 | Aayra | 35000 |
3 | Aayra | 45000 |
4 | John | 20000 |
5 | Derek | NULL |
LIÊN KẾT TẤT CẢ với THAM GIA
Viết truy vấn để truy xuất EmpID, Name và CostforProject từ bảng Nhân viên và ProjectDetails, nơi cho phép các giá trị trùng lặp.
CHỌN EmpID, Tên, CostforProject TỪ Nhân viên TRÁI THAM GIA Dự án Chi tiết trên Nhân viên.EmpID =ProjectDetails.Đầu ra:
EmpID | Tên | CostforProject |
1 | Emma | 60000 |
1 | Emma | 50000 |
2 | Rahul | NULL |
3 | Aayra | 35000 |
3 | Aayra | 45000 |
4 | John | 20000 |
5 | Derek | NULL |
4 | John | 20000 |
3 | Aayra | 35000 |
1 | Emma | 60000 |
3 | Aayra | 35000 |
1 | Emma | 50000 |
Đến phần cuối của bài viết này về SQL UNION. Tôi hy vọng bạn thích đọc bài viết này trên SQL UNION. Chúng tôi đã thấy các cách khác nhau để sử dụng lệnh UNION và UNION ALL để giúp bạn viết truy vấn. Nếu bạn muốn tìm hiểu thêm về MySQL và làm quen với cơ sở dữ liệu quan hệ nguồn mở này, hãy xem MySQL DBA của chúng tôi Đào tạo chứng nhận đi kèm với đào tạo trực tiếp do người hướng dẫn và trải nghiệm dự án thực tế. Khóa đào tạo này sẽ giúp bạn hiểu sâu về MySQL và giúp bạn đạt được thành thạo về chủ đề này.
Bạn có câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của "SQL UNION" và tôi sẽ liên hệ lại với bạn.