Node.js - MySQL 刪除:初学者的全面指南

你好,有抱負的程序员們!今天,我們將深入Node.js和MySQL的世界,專注於如何從數據庫中刪除數據。別擔心如果你是新手——我會像一隻有耐心的老烏龜一樣指導你完成每一步。讓我們開始我們的旅程!

Node.js - MySQL Delete

MySQL DELETE 的介紹

在我們開始隨意刪除數據之前,讓我們先了解DELETE在數據庫中的含義。想像你有一本數字筆記本(這就是我們的數據庫),裡面充滿了各種筆記(我們的數據)。有時候,你可能想要刪除某些不再相關的筆記。這就是MySQL中的DELETE操作所做的工作。

設置我們的環境

首先,我們需要確保我們已經安裝了Node.js和MySQL模塊。如果你還沒有,那就去官方網站下載並安裝Node.js。然後,打開你的終端並運行:

npm install mysql

這個命令為Node.js安裝了MySQL模塊,讓我們能夠連接到並與我們的MySQL數據庫交互。

連接到MySQL

在我們能夠刪除任何東西之前,我們需要與我們的MySQL數據庫建立連接。這是我們如何做到這一點:

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('連接到數據庫時出錯: ' + err.stack);
return;
}
console.log('已連接到數據庫。');
});

在這段代碼中,我們導入了MySQL模塊並創建了一個到數據庫的連接。將'your_username'、'your_password'和'your_database_name'替換為你的實際MySQL憑據。

簡單的 DELETE

現在我們已經連接上了,讓我們學習如何執行一個簡單的DELETE操作。想像我們有一個名為'students'的表,我們想要刪除名為'John Doe'的學生。

const deleteQuery = "DELETE FROM students WHERE name = 'John Doe'";

connection.query(deleteQuery, (err, result) => {
if (err) throw err;
console.log(`已刪除 ${result.affectedRows} 行`);
});

讓我們分解這一步:

  1. 我們定義了我們的DELETE查詢作為一個字符串。它告訴MySQL從'students'表中刪除名為'John Doe'的記錄。
  2. 我們使用connection.query()方法來執行我們的查詢。
  3. 如果有錯誤,我們會抛出它。否則,我們會記錄我們的刪除操作影響了多少行。

記住,這個查詢會刪除所有名為'John Doe'的行。如果你有多个John Doe(可憐的家夥們),他們都會被刪除!

使用 LIMIT 子句

有時候,你可能想要限制你刪除的行數。這時,LIMIT子句就派上用場了。讓我們說我們只想刪除一條'John Doe'記錄:

const limitedDeleteQuery = "DELETE FROM students WHERE name = 'John Doe' LIMIT 1";

connection.query(limitedDeleteQuery, (err, result) => {
if (err) throw err;
console.log(`已刪除 ${result.affectedRows} 行`);
});

這個查詢與我們之前的查詢相似,但我們在結尾處添加了LIMIT 1。這樣可以確保只有一行(第一個匹配的行)被刪除。

基於多個條件的刪除

在現實世界的情況中,你經常需要基於多個條件來刪除。讓我們說我們想要刪除所有名為'John Doe'並且年齡超過20歲的學生:

const multiConditionDelete = "DELETE FROM students WHERE name = 'John Doe' AND age > 20";

connection.query(multiConditionDelete, (err, result) => {
if (err) throw err;
console.log(`已刪除 ${result.affectedRows} 行`);
});

在這裡,我們使用AND運算符來組合兩個條件。這個查詢只會刪除滿足兩個條件的記錄。

在 DELETE 查詢中使用變量

到目前為止,我們一直在直接將值硬編碼到查詢字符串中。但如果我們想要使查詢更靈活呢?我們可以使用變量:

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(`已刪除 ${result.affectedRows} 行`);
});

在這個例子中:

  1. 我們單獨定義了我們的變量。
  2. 在我們的查詢字符串中,我們使用?作為我們變量的占位符。
  3. 我們將變量的數組作為connection.query()的第二個參數傳遞。

這種方法有助於防止SQL注入攻擊,並使我們的代碼更易於閱讀和維護。

刪除表中的所有記錄

有時候,你可能想要刪除表中的所有記錄。請非常小心這個操作,因為它無法撤銷!

const deleteAllQuery = "DELETE FROM students";

connection.query(deleteAllQuery, (err, result) => {
if (err) throw err;
console.log(`已刪除 ${result.affectedRows} 行`);
});

這個查詢會從'students'表中移除所有行。謹慎使用!

結論

恭喜你!你剛剛學會了如何使用Node.js從MySQL數據庫中刪除數據的基本知識。記住,能力越大,責任越大。在運行DELETE查詢之前,總是雙重檢查,尤其是在生產環境中。

這裡是我們已經介紹過的方法的快速總結:

方法 描述
簡單 DELETE 刪除所有匹配條件的行
带 LIMIT 的 DELETE 刪除指定數量的行
带多個條件的 DELETE 刪除滿足多個條件的行
带變量的 DELETE 使用變量進行靈活且安全的查詢
刪除所有記錄 從表中移除所有行

練習這些方法,對你自己的數據進行實驗,很快你將成為MySQL DELETE的大師!記住,學習編程就像學習騎自行車——起初可能會顫抖,但隨著練習,你會很快騎得穩穩的。祝你編程愉快!

Credits: Image by storyset