在 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、聚合函数等复杂查询,但要注意性能和锁表现