Node.js - MySQL 從資料庫選擇數據

Hello, 有志的程序员們!今天,我們將踏上一段令人興奮的旅程,進入 Node.js 和 MySQL 的世界。作為你們親切的鄰居計算機科學老師,我將指導你們使用 Node.js 從 MySQL 資料庫中检索數據的過程。如果你是編程新手,別擔心——我們會從基礎開始,逐步深入。所以,來一杯咖啡(或是你喜歡的飲料),我們一起來深入探究吧!

Node.js - MySQL Select From

Node.js 和 MySQL 是什麼?

在我們投入代碼之前,讓我們快速了解一下 Node.js 和 MySQL 是什麼:

  1. Node.js:它是一個強大的 JavaScript 執行環境,讓你能在電腦上運行 JavaScript,而不僅僅是在網絡瀏覽器中。
  2. MySQL:它是一個流行的數據庫系統,為你的應用程序存儲和管理數據。

將 Node.js 想象成一位技藝高超的廚師,而 MySQL 則是一個井然有序的冰箱。我們的廚師(Node.js)需要從冰箱(MySQL)中檢索食材(數據)來烹製美味的菜餚(網絡應用程序)。今天,我們將學習我們的廚師如何有效地獲取這些食材!

配置我們的開發環境

首先,我們需要設置我們的廚房(開發環境)。以下是你需要做的:

  1. 從官方網站安裝 Node.js(https://nodejs.org)。
  2. 從官方網站安裝 MySQL(https://www.mysql.com)。
  3. 為你的項目創建一個新目錄。
  4. 在該目錄中打開終端或命令提示符。
  5. 运行 npm init -y 來創建一個 package.json 文件。
  6. 通过運行 npm install 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('已成功連接到數據庫。');
});

讓我們分解一下:

  1. 我們導入 MySQL 包。
  2. 我們使用數據庫詳情創建一個連接對象。
  3. 我們使用 connect() 方法來建立連接。
  4. 如果有錯誤,我們記錄它。否則,我們確認連接。

記得將 'your_username''your_password''your_database_name' 替換為你的實際 MySQL 賬戶憑據。

基本的 SELECT 查詢

現在,我們已經連接上了,讓我們檢索一些數據!以下是一個簡單的 SELECT 查詢:

connection.query('SELECT * FROM users', (error, results, fields) => {
if (error) throw error;
console.log('用戶列表:', results);
});

這個查詢選擇 'users' 表中的所有列(*)。結果在回調函數中返回。如果發生錯誤,我們將它抛出。否則,我們記錄結果。

使用 WHERE 子句的 SELECT

通常,我們想检索特定的數據。讓我們使用 WHERE 子句:

const userId = 1;
connection.query('SELECT * FROM users WHERE id = ?', [userId], (error, results) => {
if (error) throw error;
console.log('找到的用戶:', results[0]);
});

在這裡,我們正在選擇具有特定 ID 的用戶。'?' 是一個占位符,[userId] 是用來替換它的值。這樣可以防止 SQL 注入攻擊——對於用戶輸入,總是使用占位符!

使用 ORDER BY 的 SELECT

想要對你的結果進行排序?使用 ORDER BY:

connection.query('SELECT * FROM users ORDER BY name ASC', (error, results) => {
if (error) throw error;
console.log('按姓名排序的用戶:', results);
});

這個查詢按升序(ASC)對用戶的名字進行排序。將 ASC 改為 DESC 可以按降序排序。

使用 LIMIT 的 SELECT

要限制結果數量,使用 LIMIT:

connection.query('SELECT * FROM users LIMIT 5', (error, results) => {
if (error) throw error;
console.log('前 5 個用戶:', results);
});

這個查詢從表中返回只有前 5 個用戶。

結合多個子句

讓我們把我們學到的東西結合起來:

const searchName = 'John';
const limit = 10;

connection.query(
'SELECT * FROM users WHERE name LIKE ? ORDER BY created_at DESC LIMIT ?',
['%' + searchName + '%', limit],
(error, results) => {
if (error) throw error;
console.log('搜索結果:', results);
}
);

這個複雜的查詢:

  1. 搜索名字中包含 'John' 的用戶。
  2. 按創建日期(最新在前)對結果進行排序。
  3. 限制結果為 10 個。

關閉連接

當你完成操作時,記得關閉你的連接:

connection.end((err) => {
if (err) {
console.error('關閉連接時出錯:' + err.stack);
return;
}
console.log('成功關閉連接。');
});

這樣可以確保你没有留下任何開放的連接,這可能会导致性能問題。

方法總結

這裡是一個方便的表格,總結了我們所涵蓋的方法:

方法 描述
createConnection() 創建到 MySQL 數據庫的連接
connect() 建立數據庫連接
query() 执行 SQL 查詢
end() 關閉數據庫連接

結論

恭喜你!你剛剛學會了如何使用 Node.js 和 MySQL 進行 SELECT 查詢。記住,熟能生巧。嘗試創建不同的查詢,嘗試使用各種子句,很快你會成為數據庫大師!

在我們結束之前,這裡有一個編程幽默:為什麼程序员喜歡暗色模式?因為光會吸引蟲子!?

繼續編程,保持好奇心,並且在過程中不忘樂趣。下次見,快樂查詢!

Credits: Image by storyset