INSERT INTO users(id, name, age) VALUES(123, '姚明', 25);
列名與值一一對應,順序固定。
INSERT INTO users SET id=123, name='姚明', age=25;
可讀性強,易維護,**推薦生產環境使用**。
-- id自增時
INSERT INTO users (name, age) VALUES('姚明', 25);
INSERT INTO users SET name='姚明', age=25;
INSERT INTO users () VALUES(); -- 全默認值
INSERT INTO users VALUES(123, '姚明', 25); -- 省略列名=全列按順序賦值
⚠️ INSERT INTO users VALUES('姚明',25);會報錯(列數不匹配)。
INSERT INTO users(name, age) VALUES('姚明',25), ('比爾·蓋茨',50), ('火星人',600);
每行值用()包裹,逗號分隔。**比循環單條INSERT快數倍**,隨行數增長優勢擴大。
CREATE TABLE t(a INT UNIQUE, b INT UNIQUE, c INT UNIQUE);
INSERT INTO t VALUES(1,1,1),(2,2,2),(3,3,3);
REPLACE INTO t(a,b,c) VALUES(1,2,3); -- 衝突a=1、b=2、c=3三個唯一索引
-- 返回 4 rows affected:刪除3舊行 + 插入1新行
-- 表中僅剩 (1,2,3)
UPDATE users SET age=24 WHERE id=123;
UPDATE users SET age=24, name='Mike' WHERE id=123;
同SET風格,可多列並行更新。