SQL - Оператор UNION
Xin chào các bạn tương lai của các phù thủy SQL! 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 các оператор UNION trong SQL. Đừ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 bạ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 tách cà phê (hoặc trà, nếu đó là sở thích của bạn), và hãy cùng nhau bắt đầu!
Оператор UNION trong SQL
Hãy tưởng tượng bạn đang lên kế hoạch cho một bữa tiệc lớn và bạn có hai danh sách khách: một cho bạn bè và một cho gia đình. Оператор UNION trong SQL giống như việc kết hợp hai danh sách này thành một danh sách chính, không có bất kỳ bản sao nào. Đẹp phải không?
Trong thuật ngữ SQL, оператор 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. Dưới đây là cú pháp cơ bản:
SELECT column1, column2, ... FROM table1
UNION
SELECT column1, column2, ... FROM table2;
Lưu ý, để UNION hoạt động đúng cách:
- Số lượng cột trong mỗi câu lệnh SELECT phải相同.
- Các kiểu dữ liệu của các cột tương ứng phải khả thi.
- Thứ tự các cột trong mỗi câu lệnh SELECT phải相同.
Hãy cùng xem một số ví dụ để làm rõ hơn.
UNION trên một trường duy nhất
Giả sử chúng ta có hai bảng: fruits
và vegetables
. Chúng ta muốn tạo một danh sách tất cả các mục.
SELECT name FROM fruits
UNION
SELECT name FROM vegetables;
Truy vấn này sẽ cho chúng ta một danh sách duy nhất của tất cả các quả và rau, không có bản sao nào. Nếu có một 'Apple' trong cả hai bảng, nó sẽ xuất hiện chỉ một lần trong kết quả.
UNION trên nhiều trường
Bây giờ, giả sử chúng ta muốn bao gồm cả giá cả cùng với tên. Chúng ta có thể làm như sau:
SELECT name, price FROM fruits
UNION
SELECT name, price FROM vegetables;
Truy vấn này sẽ cho chúng ta một danh sách tất cả các mục cùng với giá cả. Lưu ý, thứ tự và số lượng cột phải khớp trong cả hai câu lệnh SELECT.
UNION với mệnh đề WHERE
Chúng ta cũng có thể sử dụng các mệnh đề WHERE với UNION để lọc kết quả. Ví dụ, nếu chúng ta chỉ muốn các mục có giá dưới $5:
SELECT name, price FROM fruits WHERE price < 5
UNION
SELECT name, price FROM vegetables WHERE price < 5;
Truy vấn này sẽ cho chúng ta một danh sách tất cả các quả và rau có giá dưới $5.
UNION với mệnh đề ORDER BY
Vậy nếu chúng ta muốn sắp xếp danh sách kết hợp của mình? Chúng ta có thể sử dụng ORDER BY, nhưng nó nên đến sau câu lệnh SELECT cuối cùng:
SELECT name, price FROM fruits
UNION
SELECT name, price FROM vegetables
ORDER BY name;
Truy vấn này sẽ cho chúng ta một danh sách tất cả các quả và rau được sắp xếp theo bảng chữ cái.
UNION với bí danh
Đôi khi, chúng ta có thể muốn đặt tên khác nhau cho các cột trong kết quả đầu ra. Chúng ta có thể làm điều này bằng cách sử dụng bí danh:
SELECT name AS item_name, price AS item_price FROM fruits
UNION
SELECT name, price FROM vegetables;
Trong trường hợp này, cột 'name' sẽ được hiển thị là 'item_name', và 'price' là 'item_price' trong tập kết quả.
Dưới đây là bảng tóm tắt các phương pháp UNION mà chúng ta đã thảo luận:
Phương pháp | Mô tả |
---|---|
UNION cơ bản | Kết hợp tập kết quả của hai hoặc nhiều câu lệnh SELECT |
UNION trên một trường | Kết hợp một cột từ nhiều bảng |
UNION trên nhiều trường | Kết hợp nhiều cột từ nhiều bảng |
UNION với WHERE | Lọc kết quả trước khi kết hợp |
UNION với ORDER BY | Sắp xếp kết quả kết hợp |
UNION với bí danh | Đặt tên lại các cột trong kết quả |
Nhớ rằng, thực hành là chìa khóa của thành công! Hãy thử viết các truy vấn UNION của riêng bạn, thử nghiệm với các bảng và điều kiện khác nhau. Trước khi bạn biết điều gì, bạn sẽunion như một chuyên gia!
Tôi hy vọng hướng dẫn này đã giúp bạn hiểu rõ hơn về оператор UNION trong SQL. Hãy tiếp tục lập trình, giữ vững sự tò mò và đừng quên vui vẻ trên đường đi. Cuối cùng, mỗi lập trình viên vĩ đại đều bắt đầu từ nơi bạn đang đứng bây giờ. Chúc các bạn thành công trong việc truy vấn!
Credits: Image by storyset