iT邦幫忙

2026 iThome 鐵人賽

DAY 19
0
IT Operation

Docker 新手村:從容器到 PostgreSQL 的實戰之路系列 第 19 篇

Day 19 - SQL 基本操作:新增、查詢、修改與刪除資料

  • 分享至 

  • xImage
  •  

學習目標

  • 認識 SQL 的基本操作
  • 學會使用 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:新增資料

首先新增一位員工:

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:查詢資料

想查看所有員工,可以輸入:

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:修改資料

假設小美從兼職轉成正職,可以使用:

UPDATE employees
SET position = '正職'
WHERE name = '小美';

執行後再查詢:

SELECT * FROM employees;

就可以看到小美的職位已經被修改。

WHERE 在這裡非常重要,因為它負責指定「要修改哪一筆資料」。


DELETE:刪除資料

如果想刪除某位員工:

DELETE FROM employees
WHERE name = '小華';

再使用:

SELECT * FROM employees;

就會發現小華的資料已經被刪除。

和 UPDATE 一樣,使用 DELETE 時也要特別注意 WHERE。

如果直接輸入:

DELETE FROM employees;

就會把整張 Table 中的資料全部刪除。


CRUD 是什麼?

今天學到的四個基本操作可以整理成:

操作 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 確認結果

DAY19 心得

今天開始真正對 PostgreSQL 裡面的資料進行操作,比起前幾天建立環境、Database 和 Table,今天可以直接看到資料被新增、修改和刪除,感覺更接近實際開發會使用到的內容。

其中我覺得最需要注意的是 UPDATE 和 DELETE 的 WHERE,如果忘記設定條件,就可能一次影響很多筆資料。

學完 INSERT、SELECT、UPDATE 和 DELETE 後,也第一次把以前聽過的 CRUD 和 SQL 對應起來。之後不管是員工管理還是排班系統,基本上都會一直使用到這些操作。


上一篇
Day 18 - 建立第一個資料表:認識 CREATE TABLE
下一篇
Day 20 - pgAdmin:用圖形化介面管理 PostgreSQL
系列文
Docker 新手村:從容器到 PostgreSQL 的實戰之路 共 21 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言