Node.js - MySQL Update
Hai there, bakal bintang pengkomputeran masa depan! Hari ini, kita bakal melantikan masuk ke dunia yang menarik Node.js dan pembaruan MySQL. Jangan khawatir jika anda baru-baru ini saja memulakan penggunaan ini - saya bakal menjadi pandu yang ramah untuk anda dalam pengembaraan ini. Pada akhir panduan ini, anda akan memperbaharui pangkalan data seperti seorang professional!
Memahami Asas
Sebelum kita masuk ke dalam kod, mari berbincang tentang apa yang kita sebenarnya lakukan. Ketika kita bicara tentang "pembaruan" dalam MySQL, kita sebenarnya mengubah data yang sudah ada dalam pangkalan data kita. Itu seperti mengedit dokumen, tetapi bukanlah fail Word, kita bekerja dengan pangkalan data yang penuh dengan maklumat.
Pembaruan Simple
Mari kita mulakan dengan pembaruan yang mudah. Bayangkan anda ada pangkalan data buku kesukaan anda, dan anda mahu mengubah penarafan salah satu daripadanya.
Berikut adalah cara yang mungkin kita lakukan:
const mysql = require('mysql');
// Pertama, kita buat sambungan ke pangkalan data kita
const connection = mysql.createConnection({
host: 'localhost',
user: 'yourusername',
password: 'yourpassword',
database: 'yourdatabase'
});
// Sekarang, mari kita sambungkan!
connection.connect((err) => {
if (err) throw err;
console.log('Terhubung ke pangkalan data!');
// Ini adalah queri UPDATE kita
let sql = "UPDATE books SET rating = 5 WHERE title = 'The Great Gatsby'";
// Mari kita laksanakan queri ini
connection.query(sql, (err, result) => {
if (err) throw err;
console.log(result.affectedRows + " rekod(rekod) dipembarui");
});
});
mari kitauraikan ini:
- Kita memulakan dengan memerlukan modul MySQL dan membuat sambungan ke pangkalan data kita.
- Kita gunakan perintah
UPDATE
SQL untuk mengubahrating
kepada 5 untuk buku bertajuk 'The Great Gatsby'. - Kita laksanakan queri menggunakan
connection.query()
. - Jika berjaya, kita logkan berapa banyak baris yang dipengaruhi oleh pembaruan kita.
Ingat, sentiasa periksa klausa WHERE dalam pernyataan UPDATE. Tanpa itu, anda mungkin secara tidak sengaja memperbaharui setiap rekod dalam jadual anda!
UPDATE dengan Pernyataan Siap
Sekarang, mari kita naikkan permainan kita dengan pernyataan siap. Ini seperti templat yang boleh digunakan semula untuk queri SQL kita, membuat kod kita lebih selamat dan lebih efisyen.
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'yourusername',
password: 'yourpassword',
database: 'yourdatabase'
});
connection.connect((err) => {
if (err) throw err;
console.log('Terhubung ke pangkalan data!');
// Pernyataan siap kita
let sql = "UPDATE books SET rating = ? WHERE title = ?";
let values = [4, 'To Kill a Mockingbird'];
// Lakukan pernyataan siap ini
connection.query(sql, values, (err, result) => {
if (err) throw err;
console.log(result.affectedRows + " rekod(rekod) dipembarui");
});
});
Dalam contoh ini:
- Kita buat pernyataan siap dengan penanda tempat (
?
) untuk nilai yang kita mahu memperbaharui. - Kita menyediakan nilai ini dalam array.
- MySQL mengambil care untuk mengecap nilai ini dengan betul, melindungi kita dari serangan SQL injection.
Buatkan pernyataan siap seperti permainan Mad Libs - kita buat struktur dahulu, lalu isikan kosongnya kemudian!
UPDATE JOIN
Kadang-kadang, kita perlu memperbaharui data di satu jadual berdasarkan maklumat dari jadual lain. Itulah di mana UPDATE JOIN berguna. mari katakan kita mahu memperbaharui harga buku berdasarkan kebangsaan pengarangnya.
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'yourusername',
password: 'yourpassword',
database: 'yourdatabase'
});
connection.connect((err) => {
if (err) throw err;
console.log('Terhubung ke pangkalan data!');
let sql = `
UPDATE books b
JOIN authors a ON b.author_id = a.id
SET b.price = b.price * 1.1
WHERE a.nationality = 'British'
`;
connection.query(sql, (err, result) => {
if (err) throw err;
console.log(result.affectedRows + " rekod(rekod) dipembarui");
});
});
Ini adalah apa yang berlaku:
- Kita JOIN jadual
books
dengan jadualauthors
menggunakan medanauthor_id
. - Kita meningkatkan harga sebanyak 10% (mengalikan dengan 1.1) untuk semua buku di mana kebangsaan pengarangnya adalah 'British'.
- Pembaruan ini mempengaruhi beberapa baris di seluruh jadual yang berkaitan dalam satu langkah!
Buatkan ini seperti tari koordinasi antara dua jadual - mereka bergerak bersama-sama untuk memperbaharui maklumat yang kita perlukan.
Perbandingan Kaedah UPDATE
Mari rangkumkan kaedah kita dalam jadual yang mudah:
Kaedah | Pros | Cons | Terbaik Digunakan Bila |
---|---|---|---|
UPDATE Simple | Mudah difahami dan diimplementasikan | Rentan kepada SQL injection jika tidak berhati-hati | Melakukan pembaruan cepat, one-off |
Pernyataan Siap | Lebih selamat terhadap SQL injection, boleh digunakan semula | Sedikit lebih kompleks untuk diatur | Melakukan pembaruan berulang dengan nilai yang berbeza |
UPDATE JOIN | Boleh memperbaharui berdasarkan maklumat dari jadual lain | Struktur queri yang lebih kompleks | Memerlukan pembaruan data berdasarkan maklumat berkaitan dalam jadual lain |
Kesimpulan
Dan di situ kamu, rakan-rakan! Kita telah melintasi negeri Node.js dan pembaruan MySQL, dari perubahan mudah ke operasi multi-jadual yang kompleks. Ingat, dengan kekuatan yang besar datang tanggung jawab yang besar - sentiasa periksa klausa WHERE dan gunakan pernyataan siap ketika berurusan dengan input pengguna.
Praktik teknik ini, terus belajar, dan terutamanya, bersenang-senang dengannya. Sampaijumpa lagi, moga queri anda cepat dan pangkalan data anda bebas dari bug!
Credits: Image by storyset