2025 最新版 Python 操作 PostgreSQL 數據庫的完整指南

學習如何使用Python操作PostgreSQL數據庫

目錄

使用 Python 操作 PostgreSQL 數據庫(2025 最新版)

PostgreSQL 是一個開放原始碼的對象關聯數據庫管理系統,支持大多數現代 SQL 標準。Python 作為一種流行的程式語言,能夠簡化與 PostgreSQL 數據庫的交互。本文將介紹如何使用 Python 來高效操作 PostgreSQL 數據庫,並提供示例程式碼和最佳實踐。

1. 安裝 PostgreSQL

首先,您需要安裝 PostgreSQL 數據庫管理系統。請前往 [PostgreSQL 官方網站](https://www.postgresql.org/download/) 下載適合您操作系統的安裝程式,並根據提示完成安裝。

2. 安裝 psycopg2

接下來,您需要安裝 `psycopg2` 模組,這是一個用於與 PostgreSQL 數據庫交互的 Python 模組。您可以使用以下命令安裝:

pip install psycopg2-binary

選擇 `psycopg2-binary` 可以避免在某些環境下的編譯問題,建議在大多數開發環境中使用。

3. 連接到 PostgreSQL 數據庫

使用 `psycopg2` 來連接 PostgreSQL 數據庫非常簡單。以下是創建數據庫連接的示例:

import psycopg2

try:
    conn = psycopg2.connect(
        host="localhost",
        user="postgres",
        password="password",
        dbname="mydb"
    )
    print("成功連接到數據庫")
except Exception as e:
    print(f"連接失敗: {e}")

4. 創建表

創建表之前,您需要創建一個游標對象,以便執行 SQL 語句。以下是創建一個名為 “users” 的表的示例:

cur = conn.cursor()

cur.execute("""
    CREATE TABLE IF NOT EXISTS users (
        id SERIAL PRIMARY KEY,
        name VARCHAR(255) NOT NULL,
        email VARCHAR(255) NOT NULL UNIQUE
    )
""")
conn.commit()  # 提交變更

5. 插入數據

要向 “users” 表中插入數據,您可以使用以下 SQL 語句:

cur.execute("""
    INSERT INTO users (name, email) VALUES (%s, %s)
""", ('John Doe', '[email protected]'))
conn.commit()

6. 查詢數據

查詢 “users” 表中的數據,您可以使用以下 SQL 語句:

cur.execute("SELECT * FROM users")
rows = cur.fetchall()
for row in rows:
    print(row)

7. 更新數據

要更新 “users” 表中的數據,您可以使用以下 SQL 語句:

cur.execute("""
    UPDATE users SET name = %s WHERE id = %s
""", ('Jane Doe', 1))
conn.commit()

8. 刪除數據

要刪除 “users” 表中的數據,您可以使用以下 SQL 語句:

cur.execute("DELETE FROM users WHERE id = %s", (1,))
conn.commit()

9. 關閉連接

在完成所有操作後,您需要關閉數據庫連接:

cur.close()
conn.close()

10. 總結

本文介紹了如何使用 Python 操作 PostgreSQL 數據庫,包括安裝 PostgreSQL 和 `psycopg2` 模組、建立連接、創建表、插入、查詢、更新與刪除數據,以及關閉連接的完整過程。掌握這些基本操作後,您將能夠在 Python 中高效地管理 PostgreSQL 數據庫。

Q&A(常見問題解答)

1. 為什麼使用 psycopg2 而不是其他庫?

psycopg2 是最流行的 PostgreSQL Python 連接器,提供了高效的性能和易用的 API,適合大多數應用。

2. 如何處理 psycopg2 連接中的錯誤?

使用 try-except 塊捕獲異常,可以有效處理連接過程中的錯誤,並進行適當的錯誤處理。

3. 如何在 Python 中使用異步操作 PostgreSQL 數據庫?

可以使用 asyncpg 庫來實現異步操作,提高數據庫的處理性能,特別是在高併發場景中。

發佈留言