PostgreSQL Xóa các hàng khỏi mục đã chọn
⚡ Tóm tắt thông minh
PostgreSQL Lệnh DELETE xóa một hoặc nhiều hàng khỏi bảng, và khi kết hợp với mệnh đề WHERE sẽ chỉ nhắm mục tiêu vào các bản ghi khớp với điều kiện, trong khi bỏ qua mệnh đề WHERE sẽ xóa mọi hàng trong bảng.

Xóa truy vấn trong PostgreSQL
câu lệnh XÓA in PostgreSQL Lệnh này được sử dụng để xóa một hoặc nhiều bản ghi khỏi bảng. Để chỉ xóa các hàng đã chọn khỏi bảng, PostgreSQL Cho phép bạn kết hợp câu lệnh DELETE với mệnh đề WHERE; nếu không, nó sẽ xóa tất cả các bản ghi trong bảng.
PostgreSQL Xóa cú pháp truy vấn
Lệnh DELETE có thể được định nghĩa bằng cú pháp sau:
[ WITH [ RECURSIVE ] with-query [, ...] ] DELETE FROM [ ONLY ] table-name [ * ] [ [ AS ] alias ] [ USING using-list ] [ WHERE condition(s) | WHERE CURRENT OF cursor-name] [ RETURNING * | output-expression [ [ AS ] output-name] [, ...] ]
Thông số Kỹ thuật
Các thông số sau có sẵn:
- với truy vấnMệnh đề WITH cho phép bạn tham chiếu đến một hoặc nhiều truy vấn con bằng tên bên trong truy vấn DELETE.
- tên bảng: tên bảng cần xóa bản ghi.
- bí danh: là tên thay thế cho tên của bảng đích.
- danh sách sử dụng: các biểu thức bảng cho phép sử dụng các cột từ các bảng khác trong mệnh đề WHERE.
- điều kiện): Tùy chọn. Đây là các điều kiện phải được đáp ứng để các bản ghi bị xóa. Nếu phần này không được cung cấp, tất cả các bản ghi có tên bảng sẽ bị xóa.
- tên con trỏ: Con trỏ được sử dụng trong điều kiện WHERE CURRENT OF. Hàng cuối cùng được con trỏ này truy xuất sẽ bị xóa.
- biểu thức đầu ra: Biểu thức cần được xử lý và trả về bởi câu lệnh DELETE sau khi mỗi hàng được xóa.
- tên đầu ra: tên được sử dụng cho cột được trả về.
Lưu ý rằng vì câu lệnh DELETE xóa toàn bộ hàng, bạn không cần phải chỉ định tên cột.
PostgreSQL Xóa truy vấn với một điều kiện
Lệnh DELETE có thể được sử dụng với một điều kiện duy nhất, được thiết lập bằng mệnh đề WHERE. Hãy xem xét bảng Price với dữ liệu sau:
Giá:
Hãy để chúng tôi xóa bản ghi có id là 4:
DELETE FROM Price WHERE id = 4;
Lệnh trên xóa các bản ghi có ID là 4. Hãy xác nhận xem việc xóa có thành công hay không:
Hàng có id là 4 đã bị xóa.
Xóa truy vấn với hai điều kiện
PostgreSQL Câu lệnh DELETE cũng có thể nhận hai điều kiện. Hai điều kiện này cần được kết hợp bằng toán tử AND. Chúng ta sẽ sử dụng bảng sau:
Giá:
Hãy xem xét ví dụ được đưa ra dưới đây:
DELETE FROM Price WHERE id = 3 AND price = 300;
Trong lệnh trên, chúng ta đang xóa hàng có id là 3 và giá là 300. Bây giờ chúng ta có thể truy vấn bảng:
SELECT * FROM Price;
Điều này trả về như sau:
Bản ghi có id là 3 và giá 300 đã bị xóa.
PostgreSQL Xóa truy vấn sử dụng điều kiện EXISTS
Với TỒN TẠI Trong một số trường hợp, bạn có thể làm cho thao tác DELETE phức tạp hơn. Đôi khi, có thể cần phải xóa các bản ghi trong một bảng dựa trên các bản ghi trong một bảng khác.
Vì mệnh đề FROM không cho phép bạn liệt kê các bản ghi từ nhiều hơn một bảng khi thực hiện thao tác xóa, nên mệnh đề EXISTS trở nên rất hữu ích. Chúng ta có hai bảng sau:
Sách:
Giá:
Sau đó chúng ta có thể chạy truy vấn sau:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Lệnh này xóa các hàng trong bảng Book có ID trùng khớp với bảng Price và có giá dưới 250.
Bảng Book bây giờ như sau:
Bản ghi có id là 1 đã bị xóa.
Cách xóa một hàng trong PostgreSQL sử dụng pgAdmin
Bạn cũng có thể chạy các truy vấn xóa tương tự thông qua giao diện pgAdmin bằng cách làm theo các bước sau:
Với một điều kiện
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 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 bên dưới vào trình chỉnh sửa truy vấn:
DELETE FROM Price WHERE id = 4;
Bước 4) Nhấp vào nút Thực hiện.
Bước 5) Hãy kiểm tra xem hàng đó đã bị xóa chưa:
Với hai điều kiện
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 id = 3 AND price = 300;
Bước 4) Nhấp vào nút Thực hiện.
Bước 5) Hãy để chúng tôi kiểm tra xem việc xóa có thành công hay không:
Sử dụng điều kiện EXISTS
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 Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Bước 4) Nhấp vào nút Thực hiện.
Bước 5) Hãy để chúng tôi kiểm tra xem việc xóa có thành công hay không:
Tải xuống Cơ sở dữ liệu được sử dụng trong Hướng dẫn này
















