2021-01-04 20:02:05
在 MySQL 中,使用 INSERT 语句插入数据是基础且高频的操作,以下是具体用法和注意事项的总结:
1. 插入单条完整记录需明确指定表名、字段列表及对应值,语法如下:
INSERT INTO 表名 (字段1, 字段2, 字段3) VALUES (值1, 值2, 值3);示例:向 users 表插入一条完整数据(含 id、name、age):
INSERT INTO users (id, name, age) VALUES (1, '张三', 25);字符串值(如 '张三')必须用单引号包裹,数字(如 25)直接书写。
字段顺序需与 VALUES 中值的顺序严格对应。
通过单条语句插入多行数据,减少数据库交互次数,提升效率:
INSERT INTO 表名 (字段1, 字段2) VALUES (值1_1, 值1_2), (值2_1, 值2_2), (值3_1, 值3_2);示例:向 users 表批量插入三条数据:
INSERT INTO users (name, age) VALUES ('李四', 30), ('王五', 28), ('赵六', 35);将查询结果直接插入目标表,适用于数据迁移、归档或同步:
INSERT INTO 目标表 (字段1, 字段2) SELECT 字段1, 字段2 FROM 源表 WHERE 条件;示例:将 users 表中年龄大于 30 的用户复制到 users_backup 表:
INSERT INTO users_backup (name, age) SELECT name, age FROM users WHERE age > 30;目标表与查询结果的字段类型需兼容。
可通过 WHERE 子句筛选数据,避免全量复制。
批量插入时,单次语句插入的数据量不宜过大(建议 1000 行以内),避免锁表或超时。
大数据量导入时,可考虑使用 LOAD DATA INFILE 命令,效率更高。
MySQL 的 INSERT 语句支持多种灵活用法,包括单条插入、批量插入、默认值处理及跨表复制。合理选择语法并注意约束条件,可高效完成数据写入操作。对于高频插入场景,优先使用批量插入和事务控制以提升性能。