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

Mục lục:

Anonim

PostgreSQL Union là gì?

Toán tử PostgreSQL UNION được sử dụng để kết hợp các tập kết quả từ nhiều 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ề một số lượng truy vấn tương tự.
  • Các 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 một cách hoàn hảo.

Trong hướng dẫn PostgreSQL này, bạn sẽ học:

  • PostgreSQL Union là gì?
  • Cú pháp
  • liên hiệp
  • Liên minh tất cả
  • ĐẶT BỞI
  • Khi nào thì sử dụng Union và khi nào thì sử dụng Union tất cả?
  • Sử dụng pgAdmin

Cú pháp

SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNIONSELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)];

Đây là lời giải thích cho các thông số trên:

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 này là các bảng mà từ đó 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 để các bản ghi được truy xuất.

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

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 tên là Demo với các bảng sau:

Sách:

Giá bán:

Hãy để chúng tôi chạy lệnh sau:

SELECT idFROM BookUNIONSELECT idFROM Price;

Lệnh sẽ trả về như sau:

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à toán tử PostgreSQL UNION không trả về các bản sao.

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 hơn một câu lệnh SELECT mà không loại bỏ các bản sao. Toán tử yêu cầu mỗi câu lệnh SELECT có một số trường tương tự trong các tập kết quả của các kiểu dữ liệu tương tự.

Cú pháp:

SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNION ALLSELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)];

Đây là lời giải thích cho các thông số trên:

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 này là các bảng mà từ đó 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 để các bản ghi được truy xuất.

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:

Giá bán:

Chạy lệnh sau:

SELECT idFROM BookUNION ALLSELECT idFROM price;

Nó sẽ trả về như sau:

Các bản sao chưa được xóa.

ĐẶT BỞI

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

Giá bán:

Giá 2:

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

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price;

Lệnh sẽ trả về như sau:

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

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

Lệnh sẽ trả về như sau:

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 thì sử dụng Union và khi nào thì 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ự nhưng bị tách vì một lý do. Nó là tốt khi bạn cần loại bỏ / 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ờ chúng ta hãy xem cách cả ba hành động được thực hiện bằng cách sử dụng pgAdmin.

liên hiệp

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

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 Demo.

Bước 3) Nhập truy vấn vào trình chỉnh sửa truy vấn:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

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

Nó sẽ trả về như sau:

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 Demo.

Bước 3) Nhập truy vấn vào trình chỉnh sửa truy vấn:

SELECT idFROM BookUNION ALLSELECT idFROM price;

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

Nó sẽ trả về như sau:

ĐẶ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 các kết quả trong tập kết quả. Ví dụ:

SELECT idFROM BookUNION ALLSELECT idFROM priceORDER BY id;

Lệnh sẽ trả về như sau:

Các kết quả đã được đặt hàng.

Tóm lược:

  • Toán tử PostgreSQL UNION kết hợp các 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ề các bản ghi trùng lặp.
  • Để sắp xếp các 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 hơn một câu lệnh SELECT thành 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