PostgreSQL tồn tại với các ví dụ

Mục lục:

Anonim

PostgreSQL Exists là gì?

Toán tử EXISTS kiểm tra xem một (các) hàng có tồn tại trong một truy vấn con hay không. Điều này có nghĩa là toán tử được sử dụng cùng với một truy vấn con. Toán tử Exists được cho là đã được đáp ứng khi ít nhất một hàng được tìm thấy trong truy vấn con. Bạn có thể sử dụng thao tác này cùng với các câu lệnh SELECT, UPDATE, INSERT và DELETE.

Trong Hướng dẫn PostgreSQL này, bạn sẽ tìm hiểu những điều sau:

  • Cú pháp
  • Với câu lệnh SELECT
  • Với câu lệnh INSERT
  • Với Tuyên bố CẬP NHẬT
  • Với tuyên bố DELETE
  • Với pgAdmin

Cú pháp

Đây là cú pháp cho câu lệnh PostgreSQL EXISTS:

WHERE EXISTS (subquery);

Cú pháp trên cho thấy rằng toán tử EXISTS nhận vào một đối số, đó là một truy vấn con. Truy vấn con chỉ đơn giản là một câu lệnh SELECT bắt đầu bằng SELECT * thay vì danh sách các tên cột hoặc biểu thức.

Với câu lệnh SELECT

Hãy xem cách sử dụng câu lệnh SELECT với toán tử EXISTS. Chúng tôi có các bảng sau:

Sách:

Giá bán:

Chạy câu lệnh sau:

SELECT *FROM BookWHERE EXISTS (SELECT *FROM PriceWHERE Book.id = Price.id);

Điều này trả về như sau:

Lệnh trên sẽ trả về tất cả các bản ghi trong bảng Sách có id khớp với id của bất kỳ bản ghi nào theo truy vấn con. Chỉ có một id được khớp. Do đó, chỉ có một bản ghi được trả lại.

Với câu lệnh INSERT

Chúng ta có thể sử dụng toán tử EXISTS trong câu lệnh INSERT. Chúng ta có 3 bảng sau:

Sách:

Giá bán:

Giá 2:

Sau đó, chúng tôi có thể chạy câu lệnh sau:

INSERT INTO PriceSELECT id, priceFROM Price2WHERE EXISTS (SELECT idFROM BookWHERE Book.id = Price2.id);

Bảng Giá bây giờ như sau:

Hàng có id là 5 trong bảng có tên Price2 đã được khớp. Bản ghi này sau đó đã được chèn vào bảng Giá.

Với Tuyên bố CẬP NHẬT

Chúng ta có thể sử dụng toán tử EXISTS trong câu lệnh UPDATE.

Chạy truy vấn sau:

UPDATE PriceSET price = (SELECT priceFROM Price2WHERE Price2.id = Price.id)WHERE EXISTS (SELECT id, priceFROM Price2WHERE Price2.id = Price.id);

Chúng tôi đang cập nhật cột giá của Bảng giá. Mục đích của chúng tôi là để giá của các mặt hàng có chung id là giống nhau. Chỉ có một hàng được khớp, tức là, 5.

Tuy nhiên, vì giá cả bằng nhau, tức là, 205, không có bản cập nhật nào được thực hiện. Nếu có sự khác biệt, một bản cập nhật sẽ được thực hiện.

Với tuyên bố DELETE

Một câu lệnh PostgreSQL DELETE có thể sử dụng toán tử EXISTS. Đây là một ví dụ:

DELETE FROM PriceWHERE EXISTS (SELECT *FROM Price2WHERE Price.id = Price2.id);

Bảng Giá bây giờ như sau:

Hàng có id là 5 đã bị xóa.

Với pgAdmin

Bây giờ chúng ta hãy xem làm thế nào những hành động này có thể được thực hiện bằng cách sử dụng pgAdmin.

Với câu lệnh SELECT

Để 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 BookWHERE EXISTS (SELECT *FROM PriceWHERE Book.id = Price.id);

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

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

Với câu lệnh INSERT

Để 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:

INSERT INTO PriceSELECT id, priceFROM Price2WHERE EXISTS (SELECT idFROM BookWHERE Book.id = Price2.id);

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

Bảng Giá bây giờ sẽ như sau:

Với Tuyên bố CẬP NHẬT

Để 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:

UPDATE PriceSET price = (SELECT priceFROM Price2WHERE Price2.id = Price.id)WHERE EXISTS (SELECT id, priceFROM Price2WHERE Price2.id = Price.id);

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

Bảng Giá bây giờ sẽ như sau:

Với tuyên bố DELETE

Để 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:

DELETE FROM PriceWHERE EXISTS (SELECT *FROM Price2WHERE Price.id = Price2.id);

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

Bảng Giá bây giờ sẽ như sau:

Tóm lược

  • Toán tử EXISTS kiểm tra xem một (các) hàng có tồn tại trong một truy vấn con hay không.
  • Nó được sử dụng với một truy vấn con và được cho là đã được đáp ứng khi truy vấn con trả về ít nhất một hàng.
  • Nó được sử dụng cùng với các câu lệnh SELECT, UPDATE, INSERT và DELETE.

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