Node.js - MySQL Delete: Panduan Lengkap untuk Pemula
Hai, para pemrogram yang sedang mencari ilmu! Hari ini, kita akan mendalamkan pengetahuan tentang Node.js dan MySQL, dengan fokus pada bagaimana menghapus data dari database. Jangan khawatir jika Anda baru saja memulai – saya akan memandu Anda melalui setiap langkah dengan kesabaran seekor buaya tua. Mari kita mulai perjalanan kita!
Pengenalan ke MySQL DELETE
Sebelum kita mulai menghapus data secukupnya, mari kita pahami apa yang sebenarnya DELETE berarti dalam konteks database. Gamalkan jika Anda punya catatan digital (itu adalah database kita) yang penuh dengan berbagai catatan (data kita). Kadang-kadang, Anda mungkin ingin menghapus catatan tertentu yang tidak lagi relevan. Itu sebenarnya apa yang dilakukan operasi DELETE di MySQL.
Menyiapkan Lingkungan Kerja
Pertama-tama, pastikan Anda sudah menginstal Node.js dan modul MySQL. Jika belum, silakan instal Node.js dari situs resmi. Kemudian, buka terminal Anda dan jalankan:
npm install mysql
Perintah ini akan menginstal modul MySQL untuk Node.js, memungkinkan kita untuk terhubung dan berinteraksi dengan database MySQL kita.
Terhubung ke MySQL
Sebelum kita bisa menghapus apa pun, kita harus menetapkan koneksi ke database MySQL kita. Berikut caranya:
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database_name'
});
connection.connect((err) => {
if (err) {
console.error('Error connecting to the database: ' + err.stack);
return;
}
console.log('Connected to the database.');
});
Dalam kode ini, kita mengimpor modul MySQL dan membuat koneksi ke database kita. Ganti 'your_username', 'your_password', dan 'your_database_name' dengan kredensial MySQL Anda sebenarnya.
DELETE Sederhana
Sekarang kita sudah terhubung, mari kita belajar bagaimana melakukan operasi DELETE sederhana. Gamalkan jika kita punya tabel 'students' dan kita ingin menghapus seorang murid bernama 'John Doe'.
const deleteQuery = "DELETE FROM students WHERE name = 'John Doe'";
connection.query(deleteQuery, (err, result) => {
if (err) throw err;
console.log(`Deleted ${result.affectedRows} row(s)`);
});
mari kitauraikan ini:
- Kita tentukan query DELETE kita sebagai string. Itu memberitahu MySQL untuk menghapus dari tabel 'students' dimana nama adalah 'John Doe'.
- Kita gunakan metode
connection.query()
untuk menjalankan query kita. - Jika ada kesalahan, kita lemparannya. Jika tidak, kita catat berapa banyak baris yang terpengaruh oleh operasi delete kita.
Perhatikan, query ini akan menghapus SEMUA baris dimana nama adalah 'John Doe'. Jika Anda punya beberapa John Does (rekan yang kurang beruntung), mereka semua akan dihapus!
Menggunakan Klausul LIMIT
Kadang-kadang, Anda mungkin ingin membatasi jumlah baris yang Anda hapus. Itu adalah saat klausul LIMIT berguna. Gamalkan jika kita hanya ingin menghapus satu catatan 'John Doe':
const limitedDeleteQuery = "DELETE FROM students WHERE name = 'John Doe' LIMIT 1";
connection.query(limitedDeleteQuery, (err, result) => {
if (err) throw err;
console.log(`Deleted ${result.affectedRows} row(s)`);
});
Query ini mirip dengan sebelumnya, tetapi kita menambahkan LIMIT 1
di akhir. Hal ini memastikan bahwa hanya satu baris (baris pertama yang cocok) akan dihapus.
Menghapus Berdasarkan Beberapa Kondisi
Dalam konteks dunia nyata, Anda seringkali perlu menghapus berdasarkan beberapa kondisi. Gamalkan jika kita ingin menghapus semua murid yang bernama 'John Doe' dan berusia lebih dari 20 tahun:
const multiConditionDelete = "DELETE FROM students WHERE name = 'John Doe' AND age > 20";
connection.query(multiConditionDelete, (err, result) => {
if (err) throw err;
console.log(`Deleted ${result.affectedRows} row(s)`);
});
Di sini, kita menggunakan operator AND untuk menggabungkan dua kondisi. Query ini hanya akan menghapus catatan yang memenuhi kedua kondisi.
Menggunakan Variabel di Query DELETE
Hingga saat ini, kita telah menaruh nilai secara langsung ke dalam string query. Tetapi, apa jika kita ingin membuat query kita lebih fleksibel? Kita bisa menggunakan variabel:
const name = 'John Doe';
const age = 20;
const variableDelete = "DELETE FROM students WHERE name = ? AND age > ?";
connection.query(variableDelete, [name, age], (err, result) => {
if (err) throw err;
console.log(`Deleted ${result.affectedRows} row(s)`);
});
Dalam contoh ini:
- Kita tentukan variabel kita secara terpisah.
- Dalam string query kita, kita gunakan
?
sebagai placeholder untuk variabel kita. - Kita kirim array variabel kita sebagai argumen kedua ke
connection.query()
.
Metode ini membantu mencegah serangan SQL injection dan membuat kode kita lebih mudah dibaca dan diawasi.
Menghapus Semua Catatan dari Tabel
Kadang-kadang, Anda mungkin ingin menghapus semua catatan dari tabel. Hatikan operasi ini, karena itu tidak bisa dibatalkan!
const deleteAllQuery = "DELETE FROM students";
connection.query(deleteAllQuery, (err, result) => {
if (err) throw err;
console.log(`Deleted ${result.affectedRows} row(s)`);
});
Query ini akan menghapus semua baris dari tabel 'students'. Gunakanlah dengan bijak!
Kesimpulan
Selamat! Anda baru saja belajar dasar menghapus data dari database MySQL menggunakan Node.js. Ingat, dengan kekuatan yang besar datang tanggung jawab yang besar. Selalu periksa query DELETE Anda sebelum menjalankan mereka, terutama di lingkungan produksi.
Berikut adalah ringkasan metode yang kita pelajari:
Metode | Deskripsi |
---|---|
DELETE Sederhana | Menghapus semua baris yang cocok dengan suatu kondisi |
DELETE dengan LIMIT | Menghapus jumlah baris tertentu |
DELETE dengan beberapa kondisi | Menghapus baris yang memenuhi beberapa kondisi |
DELETE dengan variabel | Menggunakan variabel untuk query yang fleksibel dan aman |
DELETE semua catatan | Menghapus semua baris dari tabel |
Praktikkan metode ini, eksperimen dengan data Anda sendiri, dan segera Anda akan menjadi ahli MySQL DELETE! Ingat, belajar mengkode adalah seperti belajar menunggang sepeda – mungkin tampak wobble di awal, tetapi dengan latihan, Anda akan bermain di waktu singkat. Selamat berkoding!
Credits: Image by storyset