INSERT INTO 新增資料

INSERT INTO 用來在資料表中新增資料。

基本語法

指定欄位名稱:

INSERT INTO table_name (column1, column2, column3)
VALUES (value1, value2, value3);

或省略欄位名稱(需依欄位順序提供所有值):

INSERT INTO table_name
VALUES (value1, value2, value3);

新增單筆資料

假設有一個 customers 資料表:

idnamecityphone
1張一台北02-1234

新增一筆客戶資料:

INSERT INTO customers (id, name, city, phone)
VALUES (2, '王二', '高雄', '07-5678');

結果:

idnamecityphone
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 = '台北';

這種方式可以搭配 WHEREGROUP BY 等子句來篩選要複製的資料。

注意事項

  • 字串值需用單引號包起來
  • 數值不需要引號
  • 如果欄位有 NOT NULL 約束,必須提供值
  • 如果主鍵是 AUTO INCREMENT,可以不用指定