PostgreSQL HAPUS Baris dari Pilih

โšก Ringkasan Cerdas

PostgreSQL Perintah DELETE menghapus satu atau lebih baris dari sebuah tabel, dan jika dipasangkan dengan klausa WHERE, hanya akan menargetkan catatan yang sesuai dengan suatu kondisi, sedangkan jika tidak menyertakan WHERE, semua baris dalam tabel akan dihapus.

  • ๐Ÿ“‹ sintaks: Perintah DELETE FROM table WHERE condition menghapus baris yang cocok, dan RETURNING dapat menampilkan data yang dihapus.
  • ๐ŸŽฏ Satu Syarat: Klausul WHERE tunggal hanya menghapus baris yang memenuhi satu tes.
  • โž• Dua Syarat: Menggabungkan dua pengujian dengan operator AND mempersempit penghapusan ke baris-baris tertentu.
  • ๐Ÿ”— Klausul EXISTS: EXISTS menghapus baris dalam satu tabel berdasarkan kecocokan data di tabel lain.
  • ๏ธ pgAdmin: Kueri penghapusan yang sama dijalankan secara visual melalui editor kueri pgAdmin.
  • ๐Ÿค– Keamanan AI: Asisten AI menambahkan klausa WHERE yang benar dan memberikan peringatan sebelum penghapusan seluruh tabel.

PostgreSQL Hapus Baris dari Pilihan

Hapus Kueri di PostgreSQL

The Pernyataan HAPUS in PostgreSQL Digunakan untuk menghapus satu atau lebih data dari sebuah tabel. Untuk menghapus hanya baris-baris tertentu dari sebuah tabel, PostgreSQL Memungkinkan Anda untuk menggabungkan pernyataan DELETE dengan klausa WHERE; jika tidak, pernyataan tersebut akan menghapus semua catatan dalam tabel.

PostgreSQL Sintaks Kueri Hapus

Pernyataan DELETE dapat didefinisikan menggunakan sintaks di bawah ini:

[ 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] [, ...] ]

Parameter Teknis

Parameter berikut tersedia:

  • dengan-kueriKlausa WITH memungkinkan Anda untuk merujuk satu atau lebih subkueri berdasarkan nama di dalam kueri DELETE.
  • nama tabel: nama tabel yang datanya akan dihapus.
  • alias: pengganti untuk nama tabel target.
  • menggunakan daftar: ekspresi tabel yang memungkinkan kolom dari tabel lain digunakan dalam klausa WHERE.
  • kondisi(s): opsional. Ini adalah syarat-syarat yang harus dipenuhi agar data dapat dihapus. Jika bagian ini tidak diisi, semua data nama tabel akan dihapus.
  • nama kursor: kursor yang akan digunakan dalam kondisi WHERE CURRENT OF. Baris terakhir yang diambil oleh kursor ini akan dihapus.
  • ekspresi keluaran: ekspresi yang akan diproses dan dikembalikan oleh pernyataan DELETE setelah setiap baris dihapus.
  • nama-keluaran: nama yang akan digunakan untuk kolom yang dikembalikan.

Perlu diingat bahwa karena pernyataan DELETE menghapus seluruh baris, Anda tidak perlu menentukan nama kolom.

PostgreSQL Hapus Kueri dengan Satu Syarat

Pernyataan DELETE dapat digunakan dengan satu kondisi tunggal, yang ditetapkan menggunakan klausa WHERE. Perhatikan tabel Harga dengan data berikut:

Harga:

PostgreSQL Hapus Kueri dengan Satu Syarat

Mari kita hapus record dengan id 4:

DELETE FROM Price
WHERE id = 4;

Perintah di atas menghapus catatan yang memiliki id 4. Mari kita konfirmasi apakah penghapusan berhasil:

PostgreSQL Hapus Kueri dengan Satu Syarat

Baris dengan id 4 telah dihapus.

Hapus Kueri dengan Dua Kondisi

The PostgreSQL Pernyataan DELETE juga dapat menerima dua kondisi. Kedua kondisi tersebut harus digabungkan menggunakan operator AND. Kita akan menggunakan tabel berikut:

Harga:

PostgreSQL Hapus Kueri dengan Dua Kondisi

Perhatikan contoh yang diberikan di bawah ini:

DELETE FROM Price
WHERE id = 3
AND price = 300;

Pada perintah di atas, kita menghapus baris yang id-nya 3 dan harganya 300. Sekarang kita dapat melakukan query pada tabel:

SELECT * FROM Price;

Ini mengembalikan yang berikut:

PostgreSQL Hapus Kueri dengan Dua Kondisi

Catatan dengan id 3 dan harga 300 telah dihapus.

PostgreSQL Hapus Kueri menggunakan Kondisi EXISTS

Dengan ADA Dalam kondisi tertentu, Anda dapat membuat perintah DELETE lebih kompleks. Terkadang mungkin ada kebutuhan untuk menghapus data dalam satu tabel berdasarkan data di tabel lain.

Karena klausa FROM tidak mengizinkan Anda untuk mencantumkan catatan dari lebih dari satu tabel saat melakukan penghapusan, klausa EXISTS menjadi sangat berguna. Kita memiliki dua tabel berikut:

Book:

PostgreSQL Hapus Kueri menggunakan Kondisi EXISTS

Harga:

PostgreSQL Hapus Kueri menggunakan Kondisi EXISTS

Kita kemudian dapat menjalankan kueri berikut:

DELETE FROM Book
WHERE EXISTS
  (SELECT 1
    FROM Price
    WHERE Price.id = Book.id
    AND price < 250 );

Perintah ini menghapus baris dari tabel Buku yang memiliki id yang cocok di tabel Harga dengan harga di bawah 250.

Tabel Buku sekarang sebagai berikut:

PostgreSQL Hapus Kueri menggunakan Kondisi EXISTS

Catatan dengan id 1 telah dihapus.

Cara Menghapus Baris di PostgreSQL menggunakan pgAdmin

Permintaan penghapusan yang sama juga dapat dijalankan secara visual melalui antarmuka pgAdmin, dengan mengikuti langkah-langkah di bawah ini:

Dengan Satu Syarat

Langkah 1) Masuk ke akun pgAdmin Anda. Buka pgAdmin dan masuk ke akun Anda menggunakan kredensial Anda.

Langkah 2) Buat Basis Data Demo.

  1. Dari bilah navigasi di sebelah kiri, klik Database.
  2. Klik Demo.

Hapus Baris masuk PostgreSQL menggunakan pgAdmin

Langkah 3) Ketik kueri di bawah ini di editor kueri:

DELETE FROM Price
WHERE id = 4;

Langkah 4) Klik tombol Jalankan.

Hapus Baris masuk PostgreSQL menggunakan pgAdmin

Langkah 5) Mari kita periksa apakah baris tersebut telah dihapus:

Hapus Baris masuk PostgreSQL menggunakan pgAdmin

Dengan Dua Syarat

Langkah 1) Masuk ke akun pgAdmin Anda.

Langkah 2)

  1. Dari bilah navigasi di sebelah kiri, klik Database.
  2. Klik Demo.

Hapus Baris masuk PostgreSQL menggunakan pgAdmin

Langkah 3) Ketik kueri di editor kueri:

DELETE FROM Price
WHERE id = 3
AND price = 300;

Langkah 4) Klik tombol Jalankan.

Hapus Baris masuk PostgreSQL menggunakan pgAdmin

Langkah 5) Mari kita periksa apakah penghapusan berhasil:

Hapus Baris masuk PostgreSQL menggunakan pgAdmin

Menggunakan Kondisi EXISTS

Langkah 1) Masuk ke akun pgAdmin Anda.

Langkah 2)

  1. Dari bilah navigasi di sebelah kiri, klik Database.
  2. Klik Demo.

Menghapus Baris menggunakan Kondisi EXISTS di pgAdmin

Langkah 3) Ketik kueri di editor kueri:

DELETE FROM Book
WHERE EXISTS
  (SELECT 1
    FROM Price
    WHERE Price.id = Book.id
    AND price < 250 );

Langkah 4) Klik tombol Jalankan.

Menghapus Baris menggunakan Kondisi EXISTS di pgAdmin

Langkah 5) Mari kita periksa apakah penghapusan berhasil:

Menghapus Baris menggunakan Kondisi EXISTS di pgAdmin

Unduh Database yang digunakan dalam Tutorial ini

Pertanyaan Umum Demo Slot

TRUNCATE menghapus semua baris secara instan dan mengatur ulang penyimpanan, tetapi mengabaikan klausa WHERE dan pemicu per baris. DELETE menghapus baris yang dipilih menggunakan klausa WHERE, memicu pemicu baris, dan dapat dibatalkan di dalam transaksi.

Tambahkan klausa USING: DELETE FROM member USING denylist WHERE member.phone = denylist.phone. Ini menggabungkan tabel kedua dan menghapus baris yang cocok, memberikan hasil yang sama dengan EXISTS dengan sintaks gaya penggabungan yang lebih jelas.

RETURNING akan menampilkan kolom-kolom dari baris yang baru saja dihapus dalam pernyataan yang sama. Tulis DELETE FROM Price WHERE id = 4 RETURNING *, dan PostgreSQL Mengembalikan data yang dihapus sehingga aplikasi dapat mencatat atau mengkonfirmasi perubahan tersebut.

Ya. Bungkus perintah DELETE dalam sebuah transaksi dengan BEGIN, lalu jalankan ROLLBACK untuk membatalkannya atau COMMIT untuk mempertahankannya. Hingga Anda melakukan commit, baris yang dihapus dapat dipulihkan, yang melindungi dari penghapusan yang salah.

Pertahankan satu salinan per grup menggunakan kolom ctid tersembunyi: DELETE FROM Price a USING Price b WHERE a.ctid < b.ctid AND a.id = b.id. Ini menghapus baris duplikat sambil mempertahankan satu catatan tunggal.

Jalankan filter yang sama seperti pada perintah SELECT terlebih dahulu, atau buka transaksi dengan BEGIN dan gunakan RETURNING untuk memeriksa baris yang terpengaruh. RevMelihat hasil klausa WHERE sebelum COMMIT mencegah penghapusan baris yang lebih banyak dari yang seharusnya.

Asisten AI menerjemahkan aturan dalam bahasa Inggris sederhana menjadi perintah DELETE dengan klausa WHERE yang tepat, menyarankan EXISTS atau USING untuk penghapusan lintas tabel, dan menandai pernyataan yang tidak memiliki kondisi yang akan menghapus seluruh tabel.

Ya. Sebuah AI Copilot meninjau setiap perintah DELETE, memberikan peringatan jika tidak ada klausa WHERE, dan merekomendasikan transaksi atau pratinjau RETURNING, sehingga mengurangi risiko penghapusan seluruh tabel secara tidak sengaja.

Ringkaslah postingan ini dengan: