Node.js - MySQL 開始使用

Hello, 有志者們!今天,我們將踏上一段令人興奮的旅程,進入 Node.js 和 MySQL 的世界。作為你們親切友善的計算機科學老師,我將指導你們一步步完成這次探險。不用擔心你們之前從未寫過一行代碼——我們將從最基礎的知識開始,一起建立我們的知識基礎。

Node.js - MySQL Get Started

MySQL 安裝

在我們深入編程部分之前,我們需要設置我們的工具。這就像在烹飪美味佳肴之前準備廚房一樣。我們需要的第一個食材是 MySQL。

什麼是 MySQL?

MySQL 就像是一個超級有組織的文件櫥,用於存放你的數據。它是一個數據庫管理系統,能夠幫助你高效地存儲、組織和檢索信息。想像一下,如果你必須僅用筆和紙來追踪圖書館裡數千本書——那會是一個夢魘!MySQL 協助我們完成這項工作,但使用的是計算機數據而不是書籍。

安裝 MySQL

  1. 訪問 MySQL 官方網站(https://dev.mysql.com/downloads/)。
  2. 下載適合你操作系統的 MySQL 社區伺服器。
  3. 運行安裝程序並按照螢幕上的指示操作。
  4. 在安裝過程中,你將被要求設定 root 員工密碼。記住這個密碼——它就像是你數據王國的總鍵!

安裝完畢後,你可以通過打開命令提示或終端並輸入以下命令來驗證安裝:

mysql --version

如果你看到了版本號,恭喜你!你已經成功安裝了 MySQL。

Node.js 的 MySQL 驅動

現在我們的數據庫系統已經準備好了,我們需要一種方法讓 Node.js 能夠與 MySQL 通信。這就是 MySQL 驅動的作用。把它當作是一個翻譯器,幫助 Node.js 和 MySQL 相互理解。

安裝 MySQL 驅動

要安裝 MySQL 驅動,我們將使用 npm(Node 包管理器)。這就像 Node.js 的應用商店。打開你的終端並輸入以下命令:

npm install mysql

這個命令告訴 npm 為我們下載和安裝 mysql 包。簡單吧?

建立連接

現在我們來到令人興奮的部分——將 Node.js 連接到 MySQL!這就像介紹兩個朋友並幫助他們握手。

基本連接

讓我們寫下我們的第一段代碼來建立連接:

const mysql = require('mysql');

const connection = mysql.createConnection({
host: 'localhost',
user: 'yourusername',
password: 'yourpassword',
database: 'yourdatabase'
});

connection.connect((err) => {
if (err) {
console.error('連接數據庫時出錯:', err);
return;
}
console.log('已成功連接到數據庫!');
});

讓我們分解一下這段代碼:

  1. const mysql = require('mysql'); - 這行代碼導入了我們之前安裝的 MySQL 驅動。

  2. const connection = mysql.createConnection({...}); - 在這裡,我們創建了一個連接對象。這就像填寫一個表單,上面有我們需要訪問 MySQL 數據庫的詳細信息。

  3. connect() 函數是發生魔法的地方。它嘗試使用我們提供的詳細信息來建立連接。

  4. 如果出現錯誤(比如密碼錯誤),它會打印一個錯誤消息。

  5. 如果連接成功,它會打印 "已成功連接到數據庫!"。

測試連接

為了測試這個連接,創建一個名為 db_connect.js 的新文件,將上面的代碼粘貼進去(將占位符替換為你實際的 MySQL 詳細信息),然後使用 Node.js 執行它:

node db_connect.js

如果一切設置正確,你應該會在終端看到 "已成功連接到數據庫!" 的打印信息。恭喜你!你剛剛建立了你的第一個 Node.js-MySQL 連接!

關閉連接

當你完成操作時,關閉連接是很重要的。以下是如何關閉連接:

connection.end((err) => {
if (err) {
console.error('關閉數據庫連接時出錯:', err);
return;
}
console.log('數據庫連接已關閉。');
});

永遠記得關閉你的連接——這就像離開房間時關燈一樣!

執行基本數據庫操作

既然我們現在可以連接到數據庫,讓我們學習如何進行一些基本操作。

創建表

讓我們創建一個簡單的表來存儲關於書籍的信息:

const createTableQuery = `
CREATE TABLE IF NOT EXISTS books (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
author VARCHAR(255) NOT NULL,
published_year INT
)
`;

connection.query(createTableQuery, (err, results) => {
if (err) {
console.error('創建表時出錯:', err);
return;
}
console.log('表創建成功!');
});

這個查詢創建了一個名為 'books' 的表,其中有 id、title、author 和 published_year 列。

插入數據

現在,讓我們在表中添加一些書籍:

const insertBookQuery = `
INSERT INTO books (title, author, published_year)
VALUES ('了不起的盖茨比', 'F. 斯科特·菲茨杰拉德', 1925)
`;

connection.query(insertBookQuery, (err, result) => {
if (err) {
console.error('插入書籍時出錯:', err);
return;
}
console.log('書籍插入成功!');
});

檢索數據

最後,讓我們檢索並顯示我們的書籍:

const selectBooksQuery = 'SELECT * FROM books';

connection.query(selectBooksQuery, (err, results) => {
if (err) {
console.error('檢索書籍時出錯:', err);
return;
}
console.log('數據庫中的書籍:');
results.forEach((book) => {
console.log(`${book.title} 作者:${book.author} (${book.published_year})`);
});
});

這個查詢從我們的表中選擇所有的書籍並打印出來。

結論

恭喜你!你已經邁出了進入 Node.js 和 MySQL 世界的第一步。我們介紹了安裝、連接和基本數據庫操作。記住,就像學習任何新技能一樣,實踐是關鍵。嘗試創建不同的表,插入各種類型的數據,並編寫更複雜的查詢。

在我多年的教學經驗中,我發現最好的學習方式就是實踐。所以,這裡有一個挑戰給你:創建一個管理圖書館系統的程式。它應該能夠添加新書籍、借出書籍和顯示可用的書籍。這個項目將幫助你加強你所學的知識,並推動你去探索更先進的概念。

記住,每個專家都曾經是新手。持續練習,保持好奇心,並不怕犯錯——這是我們學習和成長的方式。祝你編程愉快!

方法 描述
createConnection() 創建一個新的 MySQL 連接
connect() 建立到數據庫的連接
end() 關閉數據庫連接
query() 在數據庫上執行 SQL 查詢
escape() 轉義值以防止 SQL 注入
format() 自動轉義值以準備 SQL 語句
beginTransaction() 開始一個新的事務
commit() 提交當前的事務
rollback() 回滾當前的事務
changeUser() 更改連接的當前用戶
ping() 向伺服器發送 ping 檢查連接
statistics() 返回伺服器統計信息
threadId 返回當前連接的線程 ID

Credits: Image by storyset