SQL - Query DELETE: Panduan Ramah untuk Pemula
Halo sana, para penggemar SQL yang sedang berkembang! Hari ini, kita akan mendalamkan dunia query DELETE di SQL. Jangan khawatir jika Anda baru saja memulai programming - saya akan memandu Anda langkah demi langkah, seperti yang saya lakukan untuk ribuan murid selama tahun-tahun mengajar saya. Jadi, ambillah secangkir kopi (atau teh, jika itu yang Anda sukai), dan mari kita mulai!
Statement DELETE SQL
Bayangkan Anda sedang mengatur album foto digital Anda. Kadang-kadang, Anda ingin menghapus beberapa foto, kan? Itu tepat apa yang dilakukan statement DELETE di SQL - itu membantu kita menghapus data yang tidak diinginkan dari tabel database kita.
Ini adalah sintaks dasar dari statement DELETE:
DELETE FROM nama_tabel
WHERE kondisi;
mari kitauraikan ini:
-
DELETE FROM
: Ini memberitahu SQL bahwa kita ingin menghapus sesuatu dari tabel tertentu. -
nama_tabel
: Ganti ini dengan nama tabel Anda. -
WHERE
: Ini opsional tapi penting. Itu menentukan baris mana yang akan dihapus. -
kondisi
: Ini adalah tempat Anda menetapkan kriteria penghapusan.
Contoh 1: Menghapus Satu Baris
mari kitaanggap kita memiliki tabel bernama students
dan kita ingin menghapus seorang siswa bernama John Doe:
DELETE FROM students
WHERE name = 'John Doe';
Query ini akan menghapus baris tempat nama adalah tepat 'John Doe'. Hatikan saja! Jika ada banyak John Doe, mereka semua akan dihapus.
Contoh 2: Menghapus Berdasarkan Kondisi Numerik
Sekarang, mari kita menghapus semua siswa yang berusia lebih dari 25 tahun:
DELETE FROM students
WHERE age > 25;
Ini akan menghapus semua baris tempat usia lebih besar dari 25. Itu seperti mengatakan ke database, "Hai, hapus siapa saja yang cukup tua untuk sewa mobil tanpa biaya tambahan!"
Menghapus Banyak Baris
Kadang-kadang, Anda mungkin ingin menghapus banyak baris yang memenuhi suatu kriteria. Mari kita lihat beberapa contoh.
Contoh 3: Menghapus Baris dengan Kondisi Ganda
Suppose kita ingin menghapus semua siswa yang berusia lebih dari 30 tahun dan memiliki IPK dibawah 2.5:
DELETE FROM students
WHERE age > 30 AND gpa < 2.5;
Query ini menggabungkan dua kondisi menggunakan AND. Itu seperti mengatakan, "Hapus siswa yang berusia lebih dari 30 tahun dan mengalami kesulitan akademik."
Contoh 4: Menghapus Baris Berdasarkan Daftar Nilai
Apa bila kita ingin menghapus siswa dari daftar kota tertentu? Kita dapat menggunakan operator IN:
DELETE FROM students
WHERE city IN ('New York', 'Los Angeles', 'Chicago');
Query ini akan menghapus semua siswa yang berasal dari New York, Los Angeles, atau Chicago. Itu seperti memiliki daftar VIP, tapi untuk penghapusan!
Menghapus Semua Record Dari Tabel
Kadang-kadang, Anda mungkin ingin menghapus semua record dari tabel. Itu seperti memutuskan untuk mengosongkan lemari pakaian Anda untuk memulai baru. Ini adalah cara Anda melakukannya:
DELETE FROM nama_tabel;
Misalnya, untuk menghapus semua record dari tabel students
:
DELETE FROM students;
⚠️ Peringatan: Hatikan sekali lagi perintah ini! Itu seperti menggunakan senapan api untuk membersihkan kamar - efektif, tapi berbahaya jika digunakan dengan cara yang salah.
Menghapus Record di Banyak Tabel
Sekarang, mari kita tingkatkan sedikit. Kadang-kadang, Anda perlu menghapus record dari beberapa tabel terkait sekaligus. Ini di mana hal menjadi sedikit lebih kompleks, tapi jangan khawatir - saya akan memandu Anda.
Contoh 5: Menghapus dari Banyak Tabel menggunakan JOIN
Misalnya kita memiliki dua tabel: students
dan enrollments
. Kita ingin menghapus semua pendaftaran dan record siswa untuk siswa yang belum membayar uang kuliah:
DELETE students, enrollments
FROM students
JOIN enrollments ON students.id = enrollments.student_id
WHERE students.fees_paid = 0;
Query ini melakukan beberapa hal:
- Menggabungkan tabel
students
danenrollments
. - Mencari siswa yang belum membayar uang kuliah.
- Menghapus record yang cocok dari kedua tabel.
Itu seperti membersihkan daftar kontak dan secara bersamaan menghapus kontak ini dari semua group chat Anda!
Contoh 6: Menggunakan Subquery untuk Penghapusan
Kadang-kadang, Anda mungkin perlu menghapus berdasarkan data di tabel lain tanpa sebenarnya menggabungkannya. Ini adalah contoh:
DELETE FROM enrollments
WHERE student_id IN (
SELECT id
FROM students
WHERE graduation_year < 2020
);
Query ini menghapus semua pendaftaran untuk siswa yang lulus sebelum tahun 2020. Itu seperti mengatakan, "Hapus semua undangan acara untuk orang-orang yang sudah pindah."
Ringkasan Metode DELETE
Berikut adalah tabel rujukan cepat metode DELETE yang kita diskusikan:
Metode | Deskripsi | Contoh |
---|---|---|
DELETE Dasar | Menghapus baris berdasarkan kondisi | DELETE FROM students WHERE name = 'John Doe'; |
DELETE dengan kondisi ganda | Menghapus baris yang memenuhi kriteria ganda | DELETE FROM students WHERE age > 30 AND gpa < 2.5; |
DELETE dengan klausal IN | Menghapus baris berdasarkan daftar nilai | DELETE FROM students WHERE city IN ('New York', 'Los Angeles', 'Chicago'); |
DELETE semua record | Menghapus semua baris dari tabel | DELETE FROM students; |
DELETE dengan JOIN | Menghapus record terkait dari banyak tabel | DELETE students, enrollments FROM students JOIN enrollments ON students.id = enrollments.student_id WHERE students.fees_paid = 0; |
DELETE dengan subquery | Menghapus berdasarkan hasil query lain | DELETE FROM enrollments WHERE student_id IN (SELECT id FROM students WHERE graduation_year < 2020); |
Dan itu saja! Anda baru saja belajar tentang query DELETE di SQL. Ingat, dengan kekuatan besar datang tanggung jawab besar. Selalu periksa klausal WHERE sebelum menjalankan query DELETE, dan jika memungkinkan, mulai dengan SELECT untuk pratinjau apa yang akan Anda hapus.
Praktik query ini, mainkan dengannya, dan segera Anda akan menghapus data seperti seorang ahli! Tetapi ingat - di dunia nyata, seringkali lebih baik mengarsipkan data daripada menghapusnya secara permanen. Selamat berquery, dan semoga database Anda selalu bersih dan teratur!
Credits: Image by storyset