PostgreSQL Tồn tại với ví dụ Chọn, Chèn, Cập nhật & Xóa

Tồn tại trong cái gì PostgreSQL?

PostgreSQL TỒN TẠI toán tử kiểm tra xem (các) hàng có tồn tại trong 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 truy vấn con. Toán tử Exists được cho là đã được đáp ứng khi tìm thấy ít nhất một hàng 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 CHỌN, CẬP NHẬT, CHÈN và XÓA.

Cú pháp truy vấn tồn tại của Postgres

Đây là cú pháp cho PostgreSQL Tuyên bố Tồn tại:

WHERE EXISTS (subquery);

Cú pháp trên cho thấy toán tử EXISTS nhận 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 phải bắt đầu bằng CHỌN * thay vì danh sách tên cột hoặc biểu thức.

PostgreSQL Tồn tại với câu lệnh CHỌN

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

Sách:

PostgreSQL Tồn tại với câu lệnh CHỌN

Giá:

PostgreSQL Tồn tại với câu lệnh CHỌN

Chạy câu lệnh sau:

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

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

PostgreSQL Tồn tại với câu lệnh CHỌN

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 phụ. Chỉ có một id được khớp. Do đó, chỉ có một bản ghi được trả lại.

PostgreSQL Tồn tạ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:

PostgreSQL Tồn tại với câu lệnh INSERT

Giá:

PostgreSQL Tồn tại với câu lệnh INSERT

Giá2:

PostgreSQL Tồn tại với câu lệnh INSERT

Sau đó chúng ta có thể chạy câu lệnh sau:

INSERT INTO Price
SELECT id, price
FROM Price2
WHERE EXISTS (SELECT id
              FROM Book
              WHERE Book.id = Price2.id);

Bảng giá lúc này như sau:

PostgreSQL Tồn tại với câu lệnh INSERT

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

Postgres tồn tại với câu lệnh 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 Price
SET price = (SELECT price
              FROM Price2
              WHERE Price2.id = Price.id)
WHERE EXISTS (SELECT id, price
FROM Price2
WHERE Price2.id = Price.id);

Postgres tồn tại với câu lệnh CẬP NHẬT

Chúng tôi đang cập nhật cột giá của bảng Giá. Mục tiêu của chúng tôi là có giá của các mặt hàng có chung id. Chỉ có một hàng được khớp, tức là 5.

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

Postgres tồn tại với câu lệnh DELETE

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

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

Bảng giá lúc này như sau:

Postgres tồn tại với câu lệnh DELETE

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

PostgreSQL Tuyên bố tồn tại bằng pgAdmin

Bây giờ hãy xem cách thực hiện những hành động này bằng pgAdmin:

Cách sử dụng truy vấn tồn tại trong PostgreSQL với câu lệnh CHỌN bằng pgAdmin

Dưới đây là các bước để sử dụng truy vấn Exists trong PostgreSQL với câu lệnh CHỌN bằng pgAdmin:

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

Mở pgAdmin và Đăng nhập vào tài khoản của bạn bằng thông tin đăng nhập của bạn

Bước 2) Tạo cơ sở dữ liệu demo

  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.

PostgreSQL Tuyên bố tồn tại bằng pgAdmin

Bước 3) Nhập truy vấn

Nhập truy vấn bên dưới vào trình chỉnh sửa truy vấn:

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

Bước 4) Thực hiện truy vấn

Bấm vào nút Thực hiện

PostgreSQL Tuyên bố tồn tại bằng pgAdmin

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

PostgreSQL Tuyên bố tồn tại bằng pgAdmin

Với câu lệnh INSERT

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

Tuyên bố tồn tại trong PostgreSQL sử dụng pgAdmin

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

INSERT INTO Price
SELECT id, price
FROM Price2
WHERE EXISTS (SELECT id
              FROM Book
              WHERE Book.id = Price2.id);

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

Tuyên bố tồn tại trong PostgreSQL sử dụng pgAdmin

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

Tuyên bố tồn tại trong PostgreSQL sử dụng pgAdmin

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 điều này:

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.

Tuyên bố tồn tại trong PostgreSQL sử dụng pgAdmin

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

UPDATE Price
SET price = (SELECT price
              FROM Price2
              WHERE Price2.id = Price.id)
WHERE EXISTS (SELECT id, price
FROM Price2
WHERE Price2.id = Price.id);

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

PostgreSQL Tuyên bố tồn tại bằng pgAdmin

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

PostgreSQL Tuyên bố tồn tại bằng pgAdmin

Với câu lệnh DELETE

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

PostgreSQL Tuyên bố tồn tại bằng pgAdmin

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

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

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

PostgreSQL Tuyên bố tồn tại bằng pgAdmin

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

PostgreSQL Tuyên bố tồn tại bằng pgAdmin

Tổng kết

  • Toán tử EXISTS kiểm tra xem (các) hàng có tồn tại trong truy vấn con hay không.
  • Nó được sử dụng với truy vấn con và được cho là đã đá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

Tóm tắt bài viết này với: