資料庫使用教學
資料庫(Database)是有系統地儲存、查詢與維護資料的軟體,幾乎所有網站、App 與資料分析專案都依賴它。本站用最淺顯的方式,帶你從關聯式資料庫的核心觀念與 SQL 語法開始,學會 SQLite、PostgreSQL、MySQL 三個最常見的資料庫,再用 Python 與 SQLAlchemy 在程式裡存取資料。
最重要的 20%:先學會這些就夠用
學資料庫不需要一開始就讀完整本教科書。下面這幾項,涵蓋了日常開發八成以上會用到的知識:
-
資料表思維
資料以「表格(table)+列(row)+欄(column)」組織;用主鍵(Primary Key)識別每一列,用外鍵(Foreign Key)串起不同表。
-
四個 SQL 動作
SELECT、INSERT、UPDATE、DELETE(俗稱 CRUD),再加上WHERE篩選、JOIN合併、GROUP BY統計。 -
交易與索引
交易(Transaction)保證一組操作全部成功或全部取消;索引(Index)讓查詢從「翻整本書」變成「查目錄」。
-
程式存取三步驟
連線 → 用參數化查詢執行 SQL →
commit後關閉連線。不論哪種資料庫,Python 的寫法幾乎一樣。
建議學習路線
- 資料庫基礎:先看 關聯式資料庫核心觀念,再練 SQL 必學語法。
- 從 SQLite 開始動手:SQLite 不用安裝伺服器,Python 內建就能用,最適合練習。
- 認識伺服器型資料庫:依需求選 PostgreSQL 或 MySQL,學會用 Docker 快速啟動。
- 在程式中使用資料庫:讀 Python DB-API 掌握共通寫法,再學 SQLAlchemy 讓程式碼可以跨資料庫。
- 搭配好用的工具:用 資料庫管理工具 視覺化地瀏覽資料表與執行查詢。
- 看影片加深印象:影音教學總覽 整理了官方與 YouTube 上的優質教學。
三種資料庫怎麼選?
| 資料庫 | 類型 | 適合情境 | 安裝難度 |
|---|---|---|---|
| SQLite | 嵌入式(單一檔案) | 學習、桌面/手機 App、小型網站、資料分析 | 免安裝,Python 內建 |
| PostgreSQL | 用戶端-伺服器 | 功能完整的正式產品、複雜查詢、地理資料 | 需安裝或用 Docker |
| MySQL / MariaDB | 用戶端-伺服器 | 網站後端(WordPress、PHP 生態系)、讀取量大的服務 | 需安裝或用 Docker |
不知道選哪個?
學習與個人專案先用 SQLite;要上線給多人同時使用時,新專案建議 PostgreSQL。因為 SQL 語法大同小異,學會一個之後換另一個很快。
先看一支影片暖身
SQL Explained in 100 Seconds(Fireship)
簡述:用 100 秒說明 SQL 是什麼、資料表與查詢長什麼樣子,適合完全沒接觸過資料庫的人先建立印象。
更多官方與優質教學影片,請見 影音教學總覽。
常見問題
學資料庫一定要先會程式嗎?
不需要。SQL 是獨立的查詢語言,可以先在 DB Browser for SQLite 或 DBeaver 這類工具裡直接練習;等要把資料庫接進應用程式時,再學 Python 的存取方式。
SQL 和 NoSQL 差在哪?
SQL 資料庫(關聯式資料庫)用固定結構的資料表儲存資料,擅長需要一致性與複雜查詢的場景;NoSQL 資料庫(例如 MongoDB、Redis)結構較彈性,擅長特定存取模式或超大規模分散。本站專注於最常用、也最值得先學的關聯式資料庫。
SQLite 可以用在正式產品嗎?
可以。SQLite 是全世界部署量最大的資料庫,內建於每支手機與瀏覽器中。它的限制在於同一時間只能有一個寫入者,所以不適合大量使用者同時寫入的網站後端,這時應改用 PostgreSQL 或 MySQL。