PostgreSQL - DELETE Query: A Panduan Pemula

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

PostgreSQL - Delete Query

Apa Itu Kueri DELETE?

Sebelum kita masuk ke hal yang mendalam, mari kita memahami apa itu kueri DELETE. Bayangkan Anda memiliki buku 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 kueri DELETE di PostgreSQL - itu menghapus baris spesifik dari tabel.

Sintaks Kueri DELETE

Sekarang, mari kita lihat struktur dasar kueri DELETE:

DELETE FROM nama_tabel
WHERE kondisi;

Mari kitauraikan ini:

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

Pikirkan seperti memberikan intruksi ke robot yang membantu: "Hey robot, hapus dari bukunya (tabel) dimana tanggal adalah kemarin."

Contoh Kueri DELETE dalam Aksi

Contoh 1: Menghapus Semua Baris

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

DELETE FROM old_records;

Kueri ini akan menghapus semua baris dari tabel old_records. Hatikan ini - itu seperti menghapus semua di dalam bukunya!

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 = 'lulus';

Kueri ini mengatakan ke PostgreSQL untuk menghapus hanya baris tempat kolom status memiliki nilai 'lulus'. Itu seperti menghapus siswa yang sudah selesai sekolah dari daftar kelas Anda.

Contoh 3: Menghapus Berdasarkan Kondisi Ganda

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

DELETE FROM orders
WHERE status = 'dibatalkan' AND order_date < CURRENT_DATE - INTERVAL '30 hari';

Kueri ini menggabungkan dua kondisi:

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

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

Contoh 4: Menghapus Dengan Subquery

Kadang-kadang, kita perlu menghapus baris berdasarkan informasi di tabel lain. Misal 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 tahun'
);

Kueri 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 catatan order Anda.

Keselamatan Pertama: Menggunakan Transaksi

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

Ini cara Anda dapat menggunakan transaksi:

BEGIN;
DELETE FROM students WHERE status = 'lulus';
-- Periksa jika semuanya terlihat baik
COMMIT;
-- Atau jika ada kesalahan
-- ROLLBACK;

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

Metode DELETE Umum

Mari rangkum beberapa metode DELETE umum dalam tabel praktis:

Metode Deskripsi Contoh
Hapus semua baris Menghapus semua data dari tabel DELETE FROM nama_tabel;
Hapus dengan kondisi Menghapus baris yang memenuhi kriteria tertentu DELETE FROM nama_tabel WHERE kondisi;
Hapus dengan subquery Menghapus baris berdasarkan data dari kueri lain DELETE FROM nama_tabel WHERE kolom IN (SELECT...);
Hapus dengan join Menghapus baris berdasarkan data tabel yang di gabungkan DELETE FROM tabel1 USING tabel2 WHERE tabel1.id = tabel2.id;
Hapus dengan returning Menghapus baris dan mengembalikan data yang dihapus DELETE FROM nama_tabel RETURNING *;

Kesimpulan

Dan di sana Anda ada, murid-murid tercinta! Kita telah berjalan melalui negeri kueri DELETE PostgreSQL, dari penghapusan sederhana ke operasi yang lebih kompleks. Ingat, dengan kekuatan besar datang tanggung jawab besar - selalu periksa klausal WHERE Anda sebelum menjalankan kueri DELETE.

Praktik contoh ini, mainkan dengan data Anda sendiri, dan segera Anda akan menghapus data seperti seorang ahli. Jangan pernah kebetulan 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