INSERT 新增資料SELECT 查詢資料UPDATE 修改資料DELETE 刪除資料Day 18 已經建立了 schedule_db Database,以及 employees 員工資料表。
目前資料表的結構是:
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
position VARCHAR(20),
hire_date DATE
);
但現在這張 Table 還是空的。
今天要開始使用 SQL 對資料進行最基本的四種操作,也就是:
新增 → INSERT
查詢 → SELECT
修改 → UPDATE
刪除 → DELETE
這四個操作也常被稱為 CRUD。
首先新增一位員工:
INSERT INTO employees (name, position, hire_date)
VALUES ('小明', '正職', '2026-09-01');
因為 id 使用 SERIAL,所以不需要自己輸入編號,PostgreSQL 會自動產生。
也可以一次新增多筆:
INSERT INTO employees (name, position, hire_date)
VALUES
('小美', '兼職', '2026-09-05'),
('小華', '正職', '2026-09-10');
這樣資料表裡就開始有真正的員工資料了。
想查看所有員工,可以輸入:
SELECT * FROM employees;
其中 * 代表查詢所有欄位。
結果可能會像:
id | name | position | hire_date
---+------+----------+------------
1 | 小明 | 正職 | 2026-09-01
2 | 小美 | 兼職 | 2026-09-05
3 | 小華 | 正職 | 2026-09-10
如果只想查看姓名與職位:
SELECT name, position FROM employees;
也可以使用條件查詢:
SELECT * FROM employees
WHERE position = '正職';
這樣就只會顯示正職員工。
假設小美從兼職轉成正職,可以使用:
UPDATE employees
SET position = '正職'
WHERE name = '小美';
執行後再查詢:
SELECT * FROM employees;
就可以看到小美的職位已經被修改。
WHERE 在這裡非常重要,因為它負責指定「要修改哪一筆資料」。
如果想刪除某位員工:
DELETE FROM employees
WHERE name = '小華';
再使用:
SELECT * FROM employees;
就會發現小華的資料已經被刪除。
和 UPDATE 一樣,使用 DELETE 時也要特別注意 WHERE。
如果直接輸入:
DELETE FROM employees;
就會把整張 Table 中的資料全部刪除。
今天學到的四個基本操作可以整理成:
| 操作 | SQL | 用途 |
|---|---|---|
| Create | INSERT | 新增資料 |
| Read | SELECT | 查詢資料 |
| Update | UPDATE | 修改資料 |
| Delete | DELETE | 刪除資料 |
也就是常聽到的:
CRUD
│
├── Create → INSERT
├── Read → SELECT
├── Update → UPDATE
└── Delete → DELETE
之後製作 API 時,也會一直遇到 CRUD 的概念。
'小明'
UPDATE 忘記加 WHERE → ✅ 修改前確認指定條件DELETE 忘記加 WHERE → ✅ 避免整張資料表被刪除WHERE 條件與資料內容YYYY-MM-DD
INSERT 新增三位員工SELECT 查看全部員工WHERE 查詢正職員工UPDATE 修改其中一位員工DELETE 刪除一筆資料SELECT 確認結果今天開始真正對 PostgreSQL 裡面的資料進行操作,比起前幾天建立環境、Database 和 Table,今天可以直接看到資料被新增、修改和刪除,感覺更接近實際開發會使用到的內容。
其中我覺得最需要注意的是 UPDATE 和 DELETE 的 WHERE,如果忘記設定條件,就可能一次影響很多筆資料。
學完 INSERT、SELECT、UPDATE 和 DELETE 後,也第一次把以前聽過的 CRUD 和 SQL 對應起來。之後不管是員工管理還是排班系統,基本上都會一直使用到這些操作。