INSERT INTO 新增資料
INSERT INTO 用來在資料表中新增資料。
基本語法
指定欄位名稱:
INSERT INTO table_name (column1, column2, column3)
VALUES (value1, value2, value3);
或省略欄位名稱(需依欄位順序提供所有值):
INSERT INTO table_name
VALUES (value1, value2, value3);
新增單筆資料
假設有一個 customers 資料表:
| id | name | city | phone |
|---|---|---|---|
| 1 | 張一 | 台北 | 02-1234 |
新增一筆客戶資料:
INSERT INTO customers (id, name, city, phone)
VALUES (2, '王二', '高雄', '07-5678');
結果:
| id | name | city | phone |
|---|---|---|---|
| 1 | 張一 | 台北 | 02-1234 |
| 2 | 王二 | 高雄 | 07-5678 |
只填入部分欄位
可以只指定需要的欄位,未指定的欄位會使用 DEFAULT 值或 NULL:
INSERT INTO customers (id, name)
VALUES (3, '李三');
新增多筆資料
一次新增多筆資料:
INSERT INTO customers (id, name, city)
VALUES
(4, '陳四', '台中'),
(5, '林五', '台南'),
(6, '黃六', '新竹');
INSERT INTO SELECT
從其他資料表取得資料並新增:
INSERT INTO customers_backup (id, name, city)
SELECT id, name, city
FROM customers
WHERE city = '台北';
這種方式可以搭配 WHERE、GROUP BY 等子句來篩選要複製的資料。
注意事項
- 字串值需用單引號包起來
- 數值不需要引號
- 如果欄位有 NOT NULL 約束,必須提供值
- 如果主鍵是 AUTO INCREMENT,可以不用指定