Home SQLAlchemy Introduction(中文)
Post
Cancel

SQLAlchemy Introduction(中文)

要學哪種資料庫語法?

常常聽到各種資料庫的名稱 SQLitePostgreSQLMySQL… 阿到底要學哪一種?語法都有一些些不同,真的是搞死人。

我們看一下最基本的功能 - 創建表 在不同的資料庫下有不同的語法

SQLite

1
2
3
4
5
CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT,
    age INTEGER
);

PostgreSQL

1
2
3
4
5
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    name VARCHAR(255),
    age INTEGER
);

MySQL

1
2
3
4
5
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255),
    age INT
) ENGINE=InnoDB;

或許有人說都學就好!個人覺得除非你時間超多,不然不太可行, 就算都學會了,寫 code 的時候不會錯亂嗎?好拉,反正你行。 但我是不行拉。

這時候在軟體工程上的銀子彈出現了,就是中間層,可以解決這惱人的問題。

SQLAlchemy 就是個中間層。

SQLAlchemy

SQLAlchemy 是一個功能強大且靈活的 Python SQL 工具包和對象關係映射器(ORM),它使開發者能夠更方便地與各種資料庫交互。

使用 SQLAlchemy 確實可以大大減少你需要處理不同資料庫系統之間差異的次數。 SQLAlchemy 提供了統一的接口來處理各種資料庫操作,讓你能夠專注於應用邏輯,而不必關心底層資料庫的細節差異。好用的工具不用可惜啊!

優點

它的核心功能如下

  1. 對象關係映射(ORM):ORM 允許開發者使用 Python 類和對象來表示和操作資料庫中的表和記錄。這樣可以避免直接編寫 SQL 查詢,讓代碼更具可讀性和可維護性。

  2. SQL 表達語言:SQLAlchemy 提供了一個靈活的 SQL 表達語言,可以用來構建和執行 SQL 查詢。這對於需要執行複雜查詢的開發者非常有用。

  3. 連接池管理:SQLAlchemy 自帶高效的連接池管理功能,允許多個資料庫連接的重用,從而提高應用的性能和穩定性。

  4. 資料庫抽象:支援多種資料庫後端,包括 SQLitePostgreSQLMySQLOracleMicrosoft SQL Server 等。這意味著你可以輕鬆切換資料庫,而不需要大規模修改代碼。

以上第四點是最重要的。

資料庫操作的四個基本功能

CRUD 是資料庫操作的四個基本功能的縮寫,分別代表建立(Create)、讀取(Read)、更新(Update)和刪除(Delete

順便講一下,使用資料庫 vs 寫檔案有什麼優勢:最大的好處就是資料庫能夠同時處理多個用戶的讀寫操作,且通常能夠很好地處理並發衝突和鎖機制;資料庫管理系統(DBMS)提供查詢優化器,可以自動選擇最優的執行計劃來提高查詢性能。

寫檔案沒有以上兩個強大的優點,而都必須要 programmer 自己寫機制去實現。

☝ツ☝

This post is licensed under CC BY 4.0 by the author.

👈 ツ 👍