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:
Giá:
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:
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:
Giá:
Giá2:
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:
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);
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:
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
- Từ thanh điều hướng ở bên trái-Nhấp vào Cơ sở dữ liệu.
- Nhấp vào Bản trình diễn.
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
Nó sẽ trả về kết quả 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 điều này:
Bước 1) Đăng nhập vào tài khoản pgAdmin của bạn.
Bước 2)
- Từ thanh điều hướng ở bên trái-Nhấp vào Cơ sở dữ liệu.
- Nhấp vào Bản trình diễn.
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.
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 điều này:
Bước 1) Đăng nhập vào tài khoản pgAdmin của bạn.
Bước 2)
- Từ thanh điều hướng ở bên trái-Nhấp vào Cơ sở dữ liệu.
- Nhấp vào Bản trình diễn.
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.
Bảng Giá bây giờ sẽ như sau:
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)
- Từ thanh điều hướng ở bên trái-Nhấp vào Cơ sở dữ liệu.
- Nhấp vào Bản trình diễn.
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.
Bảng Giá bây giờ sẽ như sau:
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.





















