以下是原文翻译成繁體中文的版本:

MySQL - Python Syntax

# MySQL - Python 語法

Hello, 未來的編程師們!今天,我們將踏上一段令人興奮的旅程,進入 MySQL 和 Python 的世界。作為你們親切友善的鄰居計算機老師,我將指導你們一步一步地進行這次探險。別擔心如果你以前從未寫過一行代碼——我們將從最基礎的知識開始,一起學習進步。

## 安裝 "python-mysql" 連接器

在我們能夠開始使用 Python 無縫連接 MySQL 之前,我們需要安裝一個特別的工具,稱為連接器(connector)。把它想像成一個讓 Python 能夠與 MySQL 數據庫通信的橋樑。讓我們開始吧!

### Step 1: 安裝 Python

首先,確保你的電腦上已經安裝了 Python。如果你還沒有,那就前往 Python 官方網站(python.org)並下載適合你操作系統的最新版本。

### Step 2: 安裝 MySQL 連接器

現在,讓我們來安裝 MySQL 連接器。打開你的命令提示符或終端,並輸入以下命令:

pip install mysql-connector-python


按下 Enter 鍵,讓神奇的事情發生!這個命令會指示 pip(Python 的包安裝器)為我們下載並安裝 MySQL 連接器。

## Python 函數以訪問 MySQL

現在,我們已經安裝好了連接器,來看看我們將要使用的一些與 MySQL 數據庫交互的函數。我喜歡將這些函數看作是我們編程魔法書中的特殊咒語!

以下是 Python 中最常見的 MySQL 函數表格:

| 函數 | 描述 |
|------|------|
| `mysql.connector.connect()` | 創建一個到 MySQL 數據庫的連接 |
| `connection.cursor()` | 創建一個游標對象以執行 SQL 查詢 |
| `cursor.execute()` | 執行一個 SQL 查詢 |
| `cursor.fetchone()` | 獲取查詢結果的下一行 |
| `cursor.fetchall()` | 獲取查詢結果的所有行 |
| `connection.commit()` | 提交當前的事務 |
| `cursor.close()` | 關閉游標 |
| `connection.close()` | 關閉數據庫連接 |

如果這些現在對你來說有點神秘,別擔心。我們將會在學習過程中詳細探索它們。

## 基本範例

現在,讓我們將我們學到的所有知識用一個基本範例來實踐。我們將連接到一個 MySQL 數據庫,創建一個表,插入一些數據,然後检索它。興奮吧?讓我們開始吧!

```python
import mysql.connector

# Step 1: 建立到 MySQL 數據庫的連接
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

# Step 2: 創建一個游標對象
mycursor = mydb.cursor()

# Step 3: 創建一個表
mycursor.execute("CREATE TABLE students (name VARCHAR(255), age INTEGER)")

# Step 4: 將數據插入表中
sql = "INSERT INTO students (name, age) VALUES (%s, %s)"
val = ("John Doe", 25)
mycursor.execute(sql, val)

# Step 5: 提交更改
mydb.commit()

# Step 6: 從表中检索數據
mycursor.execute("SELECT * FROM students")
result = mycursor.fetchall()

# Step 7: 打印結果
for x in result:
  print(x)

# Step 8: 關閉游標和連接
mycursor.close()
mydb.close()

現在,讓我們一步一步分解這個過程:

Step 1: 建立連接

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

這就像是在敲我們 MySQL 數據庫的門,並說,“嘿,是 Python!我能進來嗎?”我們提供必要的信息(主機、用戶名、密碼和數據庫名)來建立連接。

Step 2: 創建游標

mycursor = mydb.cursor()

游標就像是我們的魔法杖。我們將用它來對數據庫施展我們的 SQL 咒語(執行查詢)。

Step 3: 創建一個表

mycursor.execute("CREATE TABLE students (name VARCHAR(255), age INTEGER)")

在這裡,我們使用游標來創建一個名為 "students" 的新表,其中包含兩個列: "name"(可以容納最多 255 個字符的文本)和 "age"(容納整數)。

Step 4: 插入數據

sql = "INSERT INTO students (name, age) VALUES (%s, %s)"
val = ("John Doe", 25)
mycursor.execute(sql, val)

現在我們在表中添加了一個學生。我們使用 %s 作為我們值的占位符,這有助於防止 SQL 注入攻擊(這是另一天的話題!)。

Step 5: 提交更改

mydb.commit()

這一行就像按下 "保存" 按鈕。它告訴 MySQL 永久保存我們所做的更改。

Step 6: 检索數據

mycursor.execute("SELECT * FROM students")
result = mycursor.fetchall()

在這裡,我們請求 MySQL 展示我們 "students" 表中的所有數據。 fetchall() 函數抓取所有的結果。

Step 7: 打印結果

for x in result:
  print(x)

這個循環遍歷我們結果中的每一行並打印出來。這就像打開一本科書並閱讀每一行。

Step 8: 關閉連接

mycursor.close()
mydb.close()

最後,我們關閉游標和數據庫連接。記住,每次使用完畢後都要關上門!

這就是全部!你剛剛寫了你的第一個與 MySQL 數據庫交互的 Python 程序。記住,學習編程就像學習一門新語言——它需要練習和耐心。如果你立即不能理解所有內容,不要氣餒。持續實驗,不久之後,你將能夠编写复雜的數據庫應用程序!

在我們的下一課中,我們將深入更多進階的 MySQL 運作與 Python 的交互。到時候見,快樂編程!

Credits: Image by storyset