mysql插入数据最常用INSERT INTO语句,需明确表名、字段和值;推荐显式指定字段名,支持单行/多行插入及INSERT…select跨表复制。

在 MySQL 中插入数据,最常用的是 INSERT INTO 语句,核心在于明确目标表、字段和对应值。只要表结构清楚、数据类型匹配,操作就很直接。
基础插入:指定字段和值
推荐始终显式写出字段名,避免因表结构变动或字段顺序变化导致错误。
- 语法:INSERT INTO 表名 (字段1, 字段2, …) VALUES (值1, 值2, …);
- 字符串要用单引号(如
'张三'),数字可不加引号(如25),NULL 直接写NULL(不加引号) - 示例:
INSERT INTO users (name, age, email) VALUES ('李四', 30, 'lisi@example.com');
省略字段名的插入(需谨慎)
只在你完全确认字段顺序且所有非空字段都有值时才用,否则容易出错。
- 语法:INSERT INTO 表名 VALUES (值1, 值2, …);
- 值的顺序必须严格对应表中字段的定义顺序(可通过
DESCRIBE 表名;查看) - 如果某字段允许 NULL 或有默认值(如
created_at timestamp default CURRENT_TIMESTAMP),可跳过,但必须确保前面字段数量与值数量一致
一次插入多条记录
用一条语句插入多行,提升效率,尤其适合批量导入。
- 语法:INSERT INTO 表名 (字段1, 字段2) VALUES (值1, 值2), (值3, 值4), (值5, 值6);
- 每组值用圆括号包裹,之间用英文逗号分隔
- 所有行的字段数量和类型必须一致
从其他表复制数据(INSERT … SELECT)
适合迁移、备份或根据条件生成新数据。
- 语法:INSERT INTO 表名 (字段1, 字段2) SELECT 字段A, 字段B FROM 其他表 WHERE 条件;
- SELECT 返回的列数和类型需与 INSERT 指定的字段匹配
- 支持 JOIN、聚合函数等复杂查询,但要注意性能和锁表现