---
# System prepended metadata

title: Day 7 - SQL 語法入門
tags: [2026 後端工程師體驗營]

---

# Day 7 - SQL 語法入門


## 劇情背景

海克絲一臉嚴肅地走過來：「我偷偷跑去問你培訓班的教練了，他是我前同事。」

你心裡一沉：「問...問什麼？」

「他偷爆料說你的資料庫學得很差！」海克絲叉著腰說。

「呃...那個...」你完全無法反駁。

「沒關係！今天要來惡補一下！」海克絲打開電腦，「昨天你學會看資料表了，今天來學怎麼『跟資料庫說話』！」

「跟資料庫說話？」

「對！資料庫聽不懂中文，但它聽得懂 SQL。」海克絲指著螢幕，「SQL 就是跟資料庫溝通的語言，學會這幾個關鍵字，你就能查資料、新增資料、修改資料、刪除資料！」

「聽起來很厲害欸！但是...我還以為都是用後端程式來操控資料庫欸？」

海克絲搖搖頭：「這是很多新手的迷思！其實操作資料庫不只能用程式碼，還可以用圖形化工具！像是 DBeaver，讓你用滑鼠點點就能操作資料庫。」

「真的假的？那不是很方便！」

「對啊！開發的時候用 DBeaver 查資料超方便，不用每次都寫程式。今天要把這些通通補起來！」
![angry](https://hackmd.io/_uploads/r15N9csBbg.png)

---

## 學習目標

- 認識兩種資料庫操作方式：後端程式 vs 管理工具（DBeaver）
- 學會 SQL 六大關鍵字：SELECT、FROM、WHERE、INSERT、UPDATE、DELETE
- 理解「查詢三兄弟」：SELECT + FROM + WHERE
- 理解「操作三劍客」：INSERT、UPDATE、DELETE
- 了解 UPDATE 和 DELETE 忘記加 WHERE 的危險性 ⚠️

---

## 核心概念
### 每日任務名詞說明
 - PostgreSQL = 關聯式資料庫，資料以「表格」形式儲存，表格之間可以建立「關聯」
 - SQL = 人跟資料庫說話的語言（包括六大關鍵字：SELECT、FROM、WHERE、INSERT、UPDATE、DELETE）
 - DBeaver = 資料庫的管理工具，方便人手動操作、修改以及測試
 - GUI = 圖形界面，讓人透過視覺化的介面進行操作，不需要寫很多程式
### 兩種資料庫操作方式

| 方式 | 說明 | 使用時機 |
|------|------|----------|
| 後端程式 | 透過程式碼連接資料庫 | 正式環境、自動化操作 |
| 管理工具（DBeaver） | 用圖形介面直接操作 | 開發除錯、查看資料 |

**重點：** 兩種方式是互補的！開發時用 DBeaver 方便查看，上線後用程式碼自動執行。

### SQL 六大天王

**① 查詢三兄弟：SELECT / FROM / WHERE**

```sql
SELECT name, price     -- 我要看什麼欄位？
FROM CREDIT_PACKAGE    -- 去哪找這張表？
WHERE price > 2000     -- 篩選條件
```

| 關鍵字 | 作用 | 生活比喻 |
|--------|------|----------|
| SELECT | 選擇要看的欄位 | 「老闆，我要看名字和價格！」 |
| FROM | 指定資料表 | 「我要看主菜的菜單」 |
| WHERE | 加上篩選條件 | 「只給我價格超過 2000 的」 |

**重要：** 沒有 WHERE 就會撈出全部資料❗️

**② 操作三劍客：INSERT / UPDATE / DELETE**

```sql
-- 新增資料
INSERT INTO SKILL VALUES ('拳擊')

-- 修改資料
UPDATE USER SET role = 'coach' WHERE id = 2

-- 刪除資料
DELETE FROM CREDIT_PACKAGE WHERE id = 3
```

| 關鍵字 | 作用 | 比喻 |
|--------|------|------|
| INSERT | 新增一筆資料 | 在筆記本上新增一行 |
| UPDATE | 修改現有資料 | 用立可白塗掉重寫 |
| DELETE | 刪除資料 | 把資料擦掉（回不來❗️） |

### 三、危險警告：忘了 WHERE 的後果

```sql
-- ⚠️ 危險！會把「所有人」都改成教練
UPDATE USER SET role = 'coach'

-- ⚠️ 危險！會刪除「整張表」的資料
DELETE FROM USER
```

**記住：** UPDATE 和 DELETE 一定要**加 WHERE**，不然會影響全部資料！

---

## SQL 練習場題目預覽 (共 12 題)

### CREDIT_PACKAGE 資料表 (5 題)

| 欄位 | 說明 |
|------|------|
| id | 方案編號 |
| name | 方案名稱 |
| credit_amount | 堂數 |
| price | 價格 |

1. 新增「28 堂組合包」方案（28 堂、6000 元）
2. 修改 id=2 的方案價格為 2000
3. 修改 id=1 的方案名稱為「新手體驗包」
4. 刪除 id=3 的方案
5. 新增「雙 11 限定包」方案（50 堂、9999 元）

### SKILL 資料表 (2 題)

| 欄位 | 說明 |
|------|------|
| id | 技能編號 |
| name | 技能名稱 |

6. 新增「拳擊」技能
7. 新增「游泳」技能

### USER 資料表 (5 題)

| 欄位 | 說明 |
|------|------|
| id | 使用者編號 |
| name | 姓名 |
| email | 電子郵件 |
| role | 角色 (user/coach) |
| password | 密碼 |

8. 新增使用者「陳大文」（chen@email.com、user、密碼）
9. 將 id=2 的使用者角色改為教練
10. 刪除 id=3 的使用者
11. 新增教練「張健身」（coach@email.com、coach、密碼）
12. 修改 id=1 的使用者名稱為「王大明」

---

## 遊戲連結

請進入遊戲完成本日關卡：

👉 **[點此進入遊戲](https://hexschool.github.io/backend-camp-game/)**

## 回報格式(確認打卡細節)

1. 完成遊戲中的測驗並截圖完成畫面
2. 到體驗營 Discord 的[每日活動頻道](https://discord.com/channels/801807326054055996/1446368763581562880)，找到當天任務的討論串
3. 在討論串留言貼上截圖，打卡儀表板會自動記錄你的成績
4. 分享一下此關卡有哪些知識點讓你印象深刻，甚至有透過 AI 服務延伸學習


![截圖 2026-01-02 下午5.16.29](https://hackmd.io/_uploads/BJig6WSEZg.png)
---
---

## 海克絲的叮嚀

> 「SQL 是後端工程師的必備技能，學會這六個關鍵字，你就能跟資料庫對話了！記住，UPDATE 和 DELETE 一定要加 WHERE，不然一個不小心就會把整張表的資料改掉或刪掉。還有，DBeaver 是開發時的好夥伴，可以讓你直接看到資料庫裡面有什麼，除錯的時候超好用！」

---

## 重點整理

### 今天學到的概念

1. **資料庫操作方式** = 後端程式（自動化）+ 管理工具（開發除錯）
2. **查詢三兄弟** = SELECT（看什麼）+ FROM（去哪找）+ WHERE（篩選條件）
3. **操作三劍客** = INSERT（新增）+ UPDATE（修改）+ DELETE（刪除）
4. **危險警告** = UPDATE/DELETE 忘記 WHERE 會影響全部資料！

### SQL 語法速查表

| 操作 | 語法 | 範例 |
|------|------|------|
| 查詢 | SELECT ... FROM ... WHERE ... | `SELECT * FROM USER WHERE role = 'coach'` |
| 新增 | INSERT INTO ... VALUES ... | `INSERT INTO SKILL VALUES ('拳擊')` |
| 修改 | UPDATE ... SET ... WHERE ... | `UPDATE USER SET role = 'coach' WHERE id = 2` |
| 刪除 | DELETE FROM ... WHERE ... | `DELETE FROM SKILL WHERE id = 3` |
