PostgreSQL Xóa truy vấn (Xóa hàng khỏi phần chọn)
Xóa truy vấn trong PostgreSQL
Xóa Tuyên bố in PostgreSQL được sử dụng để xóa một hoặc nhiều bản ghi khỏi bảng. Nếu bạn muốn 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.
Postgres Cú pháp xóa truy vấn
Câu lệnh DELETE có thể được định nghĩa theo cú pháp dưới đây:
[ 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ố
- với truy vấn: mệnh đề WITH cho phép chúng ta tham chiếu một hoặc nhiều truy vấn con sẽ được tham chiếu theo tên trong truy vấn DELETE.
- tên bảng: tên bảng cần xóa bản ghi.
- bí danh: đây là tên thay thế cho tên của bảng mục tiêu.
- use-list: 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): không bắt buộc. Chúng là những điều kiện phải được đáp ứng để xóa các bản ghi. Nếu phần này không được cung cấp, tất cả các bản ghi 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 được con trỏ này tìm nạp lần cuối sẽ bị xóa.
- biểu thức đầu ra: biểu thức được xử lý và trả về bằng câu lệnh DELETE sau khi xóa mỗi hàng.
- 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 nên bạn không cần chỉ định tên cột.
PostgreSQL Xóa truy vấn với một điều kiện
Câu lệnh DELETE có thể được sử dụng với một điều kiện duy nhất. Điều kiện được thiết lập bằng mệnh đề WHERE. Xem xét bảng Price với dữ liệu sau:
Giá cả
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 sẽ xóa các bản ghi có id là 4. Hãy để chúng tôi 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ó thể có hai điều kiện. Hai điều kiện này phải được nối 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 = 3Y 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ề kết quả sau:
Bản ghi có id là 3 và giá 300 đã bị xóa.
PostgreSQL Xóa truy vấn bằng điều kiện tồn tại
Với điều kiện EXISTS, bạn có thể làm cho 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.
Bạn sẽ thấy rằng 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 xóa, 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 trên sẽ xóa khỏi bảng Sách nơi tồn tại một bản ghi trong bảng Giá có id khớp với id của bảng Sách và giá nhỏ hơn 250.
Bảng Book bây giờ như sau:
Bản ghi có id là 1 đã bị xóa.
Cách xóa hàng trong PostgreSQL sử dụng pgAdmin
Sau đây là các bước để xóa một hàng trong PostgreSQL sử dụng pgAdmin:
Với một điều kiện
Để 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
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:
DELETE FROM Price WHERE id = 4;
Bước 4) Thực hiện truy vấn
Bấm vào nút Thực hiện
Bước 5) Kiểm tra xem hàng có bị xóa không
Hãy để chúng tôi kiểm tra xem việc xóa có thành công hay không:
Với hai điều kiện
Để 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 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
Để 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 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ổng kết
- Câu lệnh DELETE đượ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, bạn có thể kết hợp câu lệnh DELETE với mệnh đề WHERE.
- Nếu mệnh đề DELETE được sử dụng mà không có mệnh đề WHERE, nó sẽ xóa tất cả các bản ghi khỏi bảng.
- Tham số tên bảng cho phép bạn thêm tên của bảng mà các bản ghi sẽ bị xóa.
- Chúng ta có thể sử dụng câu lệnh DELETE với một điều kiện, được chỉ định bằng mệnh đề WHERE.
- Câu lệnh DELETE cũng có thể được sử dụng với hai điều kiện được chỉ định trong mệnh đề WHERE. Hai điều kiện phải được nối bằng toán tử AND.
- TỒN TẠI điều kiện có thể giúp chúng ta xóa các bản ghi khỏi một bảng dựa trên các bản ghi của bảng khác.
Tải xuống Cơ sở dữ liệu được sử dụng trong Hướng dẫn này