階段 4 · 資料放哪、怎麼串

SQL

查詢關聯式資料庫的語言,也常用來泛稱關聯式資料庫路線。

先用一句話理解

英文全名:Structured Query Language

查詢關聯式資料庫的語言,也常用來泛稱關聯式資料庫路線。

打個比方

像用固定語法問倉庫:給我符合條件的資料。

什麼時候會遇到

訂單、會員、付款、權限等資料有明確關聯時。

再往深一點看

SQL 是專門對關聯式資料庫下指令的語言:SELECT 查資料、INSERT 新增、UPDATE 修改、DELETE 刪除,加上 JOIN 把多張表的資料合併起來查詢。關聯式資料庫的核心優勢在於「關係」——訂單記著使用者 id、訂單項目記著商品 id,一個查詢就能把這些資料串起來,確保資料一致不重複。SQL 本身不是一個工具,它是語言規格,PostgreSQL、MySQL、SQLite 都支援 SQL 但各有細微差異。與 NoSQL 相比,SQL 在查詢彈性與資料完整性上往往更強,代價是資料結構要提前設計好。

舉個例子

你的電商後台要撈出「過去 7 天付款成功的訂單、每筆附上買家姓名」:一條 SQL JOIN orders 和 users 兩張表、加上 WHERE 篩選日期,就能在 Neon 或 Supabase 的 SQL 編輯器裡直接查到結果,不用在程式裡一筆一筆迴圈。

常見誤解

  • - 以為 SQL 很老派,選 NoSQL 卻發現訂單、用戶、商品之間的關聯查詢越來越難寫。
  • - 直接把使用者輸入拼進 SQL 字串(例如 'SELECT * FROM users WHERE name = ' + input),導致 SQL 注入攻擊漏洞。
  • - 沒有對常查詢的欄位加索引(index),資料量一大查詢就慢到幾秒以上。

相關名詞

相關服務

SupabaseNeonPlanetScale

相關工具