更新資料
以下用一個簡單的 `employees`(員工)資料表,示範如何使用 SQL 更新資料。
## 1. 建立資料表
```sql
CREATE TABLE employees (
employee_id INT PRIMARY KEY,
employee_name VARCHAR(50) NOT NULL,
department VARCHAR(50),
salary DECIMAL(10, 2),
status VARCHAR(20)
);
```
欄位說明:
| 欄位 | 說明 |
|---|---|
| `employee_id` | 員工編號,主鍵 |
| `employee_name` | 員工姓名 |
| `department` | 所屬部門 |
| `salary` | 薪資 |
| `status` | 員工狀態 |
## 2. 新增範例資料
```sql
INSERT INTO employees
(employee_id, employee_name, department, salary, status)
VALUES
(1, '王小明', 'IT', 50000, '在職'),
(2, '李小華', 'HR', 45000, '在職'),
(3, '陳美玲', 'Sales', 48000, '在職');
```
查看目前資料:
```sql
SELECT * FROM employees;
```
結果可能如下:
| employee_id | employee_name | department | salary | status |
|---:|---|---|---:|---|
| 1 | 王小明 | IT | 50000 | 在職 |
| 2 | 李小華 | HR | 45000 | 在職 |
| 3 | 陳美玲 | Sales | 48000 | 在職 |
## 3. 更新單一欄位
將員工編號為 `1` 的薪資更新為 `55000`:
```sql
UPDATE employees
SET salary = 55000
WHERE employee_id = 1;
```
## 4. 同時更新多個欄位
將員工編號為 `2` 的部門與薪資一起更新:
```sql
UPDATE employees
SET department = 'Finance',
salary = 47000
WHERE employee_id = 2;
```
## 5. 根據條件批次更新
將所有 `IT` 部門員工的薪資調高 10%:
```sql
UPDATE employees
SET salary = salary * 1.10
WHERE department = 'IT';
```
將所有員工狀態改為「離職」:
```sql
UPDATE employees
SET status = '離職'
WHERE employee_id = 3;
```
## 6. 更新前先確認資料
執行 `UPDATE` 前,可以先用相同的條件查詢:
```sql
SELECT *
FROM employees
WHERE department = 'IT';
```
確認資料正確後,再執行:
```sql
UPDATE employees
SET salary = salary * 1.10
WHERE department = 'IT';
```
## 7. 重要注意事項:不要忘記 `WHERE`
以下語法會更新整張資料表的所有資料:
```sql
UPDATE employees
SET status = '在職';
```
如果只想更新特定資料,必須加上 `WHERE`:
```sql
UPDATE employees
SET status = '在職'
WHERE employee_id = 1;
```
一般更新語法如下:
```sql
UPDATE 表名
SET 欄位1 = 新值,
欄位2 = 新值
WHERE 條件;
```
`WHERE` 決定哪些資料會被更新;若省略 `WHERE`,整張資料表都會受到影響。
相關學習地圖、教學課程
Python 資料工程
Python 後端工程、資料庫