PostgreSQL Liên minh, Liên minh TẤT CẢ với các ví dụ

Là gì PostgreSQL Liên hiệp?

PostgreSQL Toán tử UNION được sử dụng để kết hợp các tập kết quả từ nhiều hơn một câu lệnh SELECT thành một tập kết quả. Bất kỳ hàng trùng lặp nào từ kết quả của các câu lệnh SELECT đều bị loại bỏ. Toán tử UNION hoạt động trong hai điều kiện:

  • Các truy vấn CHỌN PHẢI trả về số lượng truy vấn tương tự.
  • Kiểu dữ liệu của tất cả các cột tương ứng phải tương thích.

Toán tử UNION thường được sử dụng để kết hợp dữ liệu từ các bảng liên quan chưa được chuẩn hóa hoàn hảo.

cú pháp

SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)]
UNION
SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)];

Dưới đây là lời giải thích cho các tham số trên:

Các biểu thức_1, biểu thức_2, … biểu thức_n là các phép tính hoặc cột mà bạn cần truy xuất.

Các bảng là các bảng mà bạn cần truy xuất các bản ghi.

(Các) điều kiện WHERE là các điều kiện phải được đáp ứng để truy xuất bản ghi.

Lưu ý: vì toán tử UNION không trả về các bản sao nên việc sử dụng UNION DISTINCT sẽ không ảnh hưởng đến kết quả.

PostgreSQL liên hiệp

Toán tử UNION loại bỏ các bản sao. Hãy để chúng tôi chứng minh điều này.

Chúng tôi có một cơ sở dữ liệu có tên là Demo với các bảng sau:

Sách:

PostgreSQL liên hiệp

Giá:

PostgreSQL liên hiệp

Chúng ta hãy chạy lệnh sau:

SELECT id
FROM Book
UNION
SELECT id
FROM Price;

Lệnh sẽ trả về kết quả sau:

PostgreSQL liên hiệp

Cột id xuất hiện trong cả bảng Sách và bảng Giá. Tuy nhiên, nó chỉ xuất hiện một lần trong kết quả. Lý do là vậy PostgreSQL Toán tử UNION không trả về bản sao.

PostgreSQL Liên minh tất cả

Toán tử này kết hợp các tập kết quả từ nhiều câu lệnh SELECT mà không loại bỏ các tập hợp kết quả trùng lặp. Toán tử yêu cầu mỗi câu lệnh SELECT phải có số trường tương tự trong tập hợp kết quả có kiểu dữ liệu tương tự.

Cú pháp:

SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)]
UNION ALL
SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)];

Dưới đây là lời giải thích cho các tham số trên:

Các biểu thức_1, biểu thức_2, … biểu thức_n là các phép tính hoặc cột mà bạn cần truy xuất.

Các bảng là các bảng mà bạn cần truy xuất các bản ghi.

(Các) điều kiện WHERE là các điều kiện phải được đáp ứng để truy xuất bản ghi.

Lưu ý: Cả hai biểu thức phải có số biểu thức bằng nhau.

Chúng tôi sẽ sử dụng các bảng sau:

Sách:

PostgreSQL Liên minh tất cả

Giá:

PostgreSQL Liên minh tất cả

Chạy lệnh sau:

 
SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Nó sẽ trả về kết quả sau:

PostgreSQL Liên minh tất cả

Các bản sao chưa được loại bỏ.

ĐẶT BỞI

PostgreSQL Toán tử UNION có thể được sử dụng cùng với mệnh đề ORDER BY để sắp xếp kết quả truy vấn. Để chứng minh điều này, chúng ta sẽ sử dụng các bảng sau:

Giá:

ĐẶT BỞI

Giá2:

ĐẶT BỞI

Đây là lệnh minh họa cách sử dụng toán tử UNION cùng với mệnh đề ORDER BY:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price;

Lệnh sẽ trả về kết quả sau:

ĐẶT BỞI

Các bản ghi được sắp xếp theo cột giá. Mệnh đề này mặc định sắp xếp các bản ghi theo thứ tự tăng dần. Để sắp xếp chúng theo thứ tự giảm dần, hãy thêm mệnh đề DESC như dưới đây:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price DESC;

Lệnh sẽ trả về kết quả sau:

ĐẶT BỞI

Các bản ghi đã được sắp xếp dựa trên cột giá theo thứ tự giảm dần.

Khi nào nên sử dụng Union và Khi nào nên sử dụng Union tất cả?

Sử dụng toán tử UNION khi bạn có nhiều bảng có cấu trúc tương tự nhau nhưng bị chia tách vì một lý do nào đó. Thật tốt khi bạn cần xóa/loại bỏ các bản ghi trùng lặp.

Sử dụng toán tử UNION ALL khi bạn không cần xóa/loại bỏ các bản ghi trùng lặp.

Sử dụng pgAdmin

Bây giờ hãy xem cả ba hành động được thực hiện như thế nào bằng pgAdmin.

Cách Sử dụng PostgreSQL Liên minh sử dụng pgAdmin

Sau đây là Quy trình từng bước về Cách sử dụng PostgreSQL Liên minh sử dụng pgAdmin

Để thực hiện điều tương tự thông qua pgAdmin, hãy làm điều này:

Bước 1) Đăng nhập
Đăng nhập vào tài khoản pgAdmin của bạn.

Bước 2) Bấm vào Cơ sở dữ liệu

  1. Từ thanh điều hướng ở bên trái-Nhấp vào Cơ sở dữ liệu.
  2. Nhấp vào Bản trình diễn.

Sử dụng PostgreSQL Liên minh sử dụng pgAdmin

Bước 3) Nhập truy vấn
Nhập truy vấn vào trình soạn thảo truy vấn:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price DESC;

Bước 4) Nhấp vào nút Thực hiện.
Tiếp theo, nhấp vào nút Thực hiện. Như hiển thị trong hình ảnh dưới đây.

Sử dụng PostgreSQL Liên minh sử dụng pgAdmin

Nó sẽ trả về kết quả sau:

Sử dụng PostgreSQL Liên minh sử dụng pgAdmin

Liên minh tất cả

Bước 1) Đăng nhập vào tài khoản pgAdmin của bạn.

Bước 2)

  1. Từ thanh điều hướng ở bên trái, nhấp vào Cơ sở dữ liệu.
  2. Nhấp vào Bản trình diễn.

Sử dụng PostgreSQL Liên minh Tất cả Sử dụng pgAdmin

Bước 3) Nhập truy vấn vào trình soạn thảo truy vấn:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Bước 4) Nhấp vào nút Thực hiện.

Sử dụng PostgreSQL Liên minh Tất cả Sử dụng pgAdmin

Nó sẽ trả về kết quả sau:

Sử dụng PostgreSQL Liên minh Tất cả Sử dụng pgAdmin

ĐẶT BỞI

Toán tử UNION ALL có thể được kết hợp với mệnh đề ORDER BY để sắp xếp kết quả trong tập kết quả. Ví dụ:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price
ORDER BY id;

Lệnh sẽ trả về kết quả sau:

Sử dụng PostgreSQL ĐẶT HÀNG BẰNG CÁCH Sử dụng pgAdmin

Kết quả đã được đặt hàng.

Tổng kết

  • PostgreSQL Toán tử UNION kết hợp kết quả từ nhiều hơn một Câu lệnh SELECT thành một tập kết quả.
  • Toán tử UNION không trả về bản ghi trùng lặp.
  • Để sắp xếp kết quả, hãy kết hợp nó với mệnh đề ORDER BY.
  • Toán tử UNION ALL kết hợp các kết quả từ nhiều câu lệnh SELECT vào một tập kết quả.
  • Toán tử UNION ALL không loại bỏ các bản sao.

Tải xuống Cơ sở dữ liệu được sử dụng trong Hướng dẫn này