小易说IT 小易说IT

MySQL INSERT 插入语句

1. 基础语法(指定字段,推荐)

INSERT INTO 表名 (字段1, 字段2, 字段3)
VALUES (值1, 值2, 值3);

示例:

INSERT INTO user (id, name, age)
VALUES (1, '张三', 20);

✅ 优点:顺序不受表字段顺序影响,可读性好,后续新增字段不容易报错

2. 简写(不写字段,值必须和表字段顺序完全一致)

INSERT INTO user
VALUES (2, '李四', 22);

⚠️ 不推荐,表结构改动后很容易插入失败

3. 一次性插入多条数据(批量插入,性能更好)

INSERT INTO user (id, name, age)
VALUES
(3, '王五', 18),
(4, '赵六', 25),
(5, '小明', 21);

4. 查询结果插入(把一张表的数据查出来插入另一张表)

INSERT INTO user_backup (id, name, age)
SELECT id, name, age FROM user WHERE age > 18;

5. 插入或者更新(存在就更新,不存在就插入,MySQL 特有)

INSERT INTO user (id, name, age)
VALUES (1, '张三', 20)
ON DUPLICATE KEY UPDATE name='张三', age=20;

前提:id 是主键或者唯一索引

6. 插入忽略(冲突时跳过,不报错)

INSERT IGNORE INTO user (id, name, age)
VALUES (1, '张三', 20);

注意要点

  1. 字符串 / 日期类型:必须用单引号 ' ',数字不用

  2. 日期示例:'2026-10-26 10:30:00'

  3. 如果字段有默认值、自增主键,可以不写这个字段

-- id自增,不用传id
INSERT INTO user (name, age) VALUES ('小红', 19);

本文原创作者:易君召,详见:https://www.yijunzhao.cc/about,转载请注明出处。

原文链接 https://www.yijunzhao.cc/archives/mysql-insert-statement-guide

欢迎访问 https://www.yijunzhao.cc/

https://www.yijunzhao.cc/