PostgreSQL - Query DELETE: Panduan untuk Pemula

Selamat datang, para penggemar basis data yang bersemangat! Hari ini, kita akan melihat dunia PostgreSQL dan menjelajahi salah satu operasi fundamentalnya: query DELETE. Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya - saya akan menjadi panduan ramah Anda dalam perjalanan ini, menjelaskan segala sesuatu secara langkah demi langkah.

PostgreSQL - Delete Query

Apa Itu Query DELETE?

Sebelum kita masuk ke detil, mari kita pahami apa itu query DELETE. Bayangkan Anda memiliki buku catatan digital (itu adalah basis data kami) yang penuh dengan informasi. Kadang-kadang, Anda mungkin ingin menghapus halaman atau entri tertentu. Itu tepat apa yang dilakukan query DELETE di PostgreSQL - menghapus baris tertentu dari tabel.

Sintaks Query DELETE

Sekarang, mari kita lihat struktur dasar query DELETE:

DELETE FROM table_name
WHERE condition;

Mari kitauraikan ini:

  1. DELETE FROM: Ini adalah bagaimana kita memulai query, mengatakan ke PostgreSQL bahwa kita ingin menghapus sesuatu.
  2. table_name: Ini adalah nama tabel yang Anda ingin menghapus data darinya.
  3. WHERE: Klau ini bersifat opsional tapi sangat penting. Itu menentukan baris mana yang akan dihapus.
  4. condition: Ini adalah tempat Anda menentukan baris mana yang harus dihapus.

Pikirkan seperti memberikan petunjuk ke robot yang membantu: "Hey robot, hapus dari buku catatan saya (tabel) di mana tanggalnya kemarin."

Contoh Query DELETE dalam Aksi

Contoh 1: Menghapus Semua Baris

Mari kita mulai dengan contoh sederhana. Misalnya kita memiliki tabel old_records dan kita ingin menghapus semua baris di dalamnya.

DELETE FROM old_records;

Query ini akan menghapus semua baris dari tabel old_records. Hatikan ini - itu seperti menghapus semua di buku catatan Anda!

Contoh 2: Menghapus Baris Tertentu

Sekarang, mari kita katakan kita memiliki tabel students, dan kita ingin menghapus semua siswa yang sudah lulus:

DELETE FROM students
WHERE status = 'graduated';

Query ini mengatakan ke PostgreSQL untuk menghapus hanya baris tempat kolom status memiliki nilai 'graduated'. Itu seperti melalui daftar kelas dan mengcoret semua siswa yang sudah selesai sekolah.

Contoh 3: Menghapus Berdasarkan Beberapa Kondisi

Mari kita membuatnya sedikit lebih kompleks. Bayangkan kita memiliki tabel orders, dan kita ingin menghapus semua order yang dibatalkan dan lebih dari 30 hari lama:

DELETE FROM orders
WHERE status = 'cancelled' AND order_date < CURRENT_DATE - INTERVAL '30 days';

Query ini menggabungkan dua kondisi:

  1. Status order harus 'cancelled'
  2. Tanggal order harus lebih dari 30 hari yang lalu

Itu seperti membersihkan order pizza Anda yang dibatalkan dari bulan lalu!

Contoh 4: Menghapus Dengan Subquery

kadang-kadang, kita perlu menghapus baris berdasarkan informasi di tabel lain. Misalnya, kita ingin menghapus semua order dari pelanggan yang tidak melakukan pembelian dalam setahun terakhir:

DELETE FROM orders
WHERE customer_id IN (
SELECT customer_id
FROM customers
WHERE last_purchase_date < CURRENT_DATE - INTERVAL '1 year'
);

Query ini menggunakan subquery untuk menemukan pelanggan yang tidak melakukan pembelian dalam setahun, kemudian menghapus semua order dari pelanggan itu. Itu seperti menghapus semua jejak pelanggan yang lama dari buku order Anda.

Keselamatan Pertama: Menggunakan Transaksi

Ketika bekerja dengan query DELETE, khususnya pada data penting, hal yang baik adalah menggunakan transaksi. Pikirkan transaksi seperti jaringan keselamatan - jika ada yang salah, Anda dapat membatalkan perubahan Anda.

Ini adalah cara Anda dapat menggunakan transaksi:

BEGIN;
DELETE FROM students WHERE status = 'graduated';
-- Periksa jika semuanya terlihat baik
COMMIT;
-- Atau jika ada yang salah
-- ROLLBACK;

Dengan cara ini, Anda dapat meninjau perubahan sebelum membuatnya permanen (COMMIT) atau membatalkannya jika diperlukan (ROLLBACK).

Metode DELETE Umum

Mari kita rangkum beberapa metode DELETE umum dalam tabel praktis:

Metode Deskripsi Contoh
Hapus semua baris Menghapus semua data dari tabel DELETE FROM table_name;
Hapus dengan kondisi Menghapus baris yang memenuhi kriteria tertentu DELETE FROM table_name WHERE condition;
Hapus dengan subquery Menghapus baris berdasarkan data dari query lain DELETE FROM table_name WHERE column IN (SELECT...);
Hapus dengan join Menghapus baris berdasarkan data tabel bergabung DELETE FROM table1 USING table2 WHERE table1.id = table2.id;
Hapus dengan returning Menghapus baris dan mengembalikan data yang dihapus DELETE FROM table_name RETURNING *;

Kesimpulan

Dan begitu, murid-murid tercinta! Kita telah melakukan perjalanan melalui negeri query DELETE PostgreSQL, dari penghapusan sederhana ke operasi yang lebih kompleks. Ingat, dengan kekuatan yang besar datang tanggung jawab yang besar - selalu periksa klausa WHERE Anda sebelum menjalankan query DELETE.

Latih contoh ini, mainkan dengan data Anda sendiri, dan segera Anda akan menghapus data seperti seorang ahli. Jangan pernah menghapus tugas Anda - saya tidak akan menerima "PostgreSQL makan tugas saya" sebagai alasan!

Selamat berquery, dan semoga basis data Anda selalu bersih dan terkelola baik!

Credits: Image by storyset