MySQL 一次向表中插入多条数据方法详解
在数据库开发中,批量导入或录入数据是常见需求。相比于逐条执行 Insert 操作,使用 MySQL 的单次多值插入语法可以显著减少网络交互次数并提升写入效率。
实现目标与准备条件
本次操作的目标是在 MySQL 数据库中,通过一条 INSERT 语句将多组数据同时写入指定表结构中。操作前需确保已存在目标表结构,且具备相应的数据库写入权限。
第1步:创建测试表结构
目的:建立一个包含主键及多个字段的基础表,用于演示数据的批量录入。 入口:MySQL 客户端或命令行工具。
以下 SQL 代码用于创建一个名为 Authors 的表,包含作者ID、名、中间名和姓氏等字段,并指定存储引擎为 InnoDB:
CREATE TABLE Authors(
AuthID SMALLINT NOT NULL PRIMARY KEY,
AuthFN VARCHAR(20),
AuthMN VARCHAR(20),
AuthLN VARCHAR(20)
) ENGINE=INNODB;
第2步:执行多行插入语句
目的:演示如何使用逗号分隔的方式,在单次 INSERT 命令中提交多组数据值。
核心动作:在 VALUES 子句中,用括号包裹每一行数据,并用逗号将各行的括号组连接起来。
以下是向 Authors 表中一次性插入 9 条记录的完整 SQL 语句。注意观察数值型数据(如 ID)与字符型数据(如姓名)的引用方式,以及如何处理空值(NULL):
INSERT INTO Authors VALUES (1006, 'H', 'S.', 'T'),
(1007, 'J', 'C', 'O'),
(1008, 'B', NULL, 'E'),
(1009, 'R', 'M', 'R'),
(1010, 'J', 'K', 'T'),
(1011, 'J', 'G.', 'N'),
(1012, 'A', NULL, 'P'),
(1013, 'A', NULL, 'W'),
(1014, 'N', NULL, 'A');
关键点说明:
- 语法差异:单条插入通常只写一组括号值;多条插入则是多组括号值以逗号分隔,最后一组后无需逗号。
- 字段对应:如果省略
INSERT INTO table (col1, col2...)中的列名列表,则VALUES中的值必须按表定义的顺序严格一一对应。 - 性能优势:相比循环发送多条单句 Insert,此方法能在同一事务上下文完成所有写入,效率更高。
第3步:验证插入结果
目的:确认所有批次数据已成功写入数据库。
操作:执行 SELECT * FROM Authors; 查看表内容。
| AuthID | AuthFN | AuthMN | AuthLN |
|---|---|---|---|
| 1006 | H | S. | T |
| 1007 | J | C | O |
| 1008 | B | NULL | E |
| 1009 | R | M | R |
| 1010 | J | K | T |
| 1011 | J | G. | N |
| 1012 | A | NULL | P |
| 1013 | A | NULL | W |
| 1014 | N | NULL | A |
从结果可见,指定 ID 范围内的所有记录均已成功生成,包括 AuthMN 字段为空值(NULL)的记录也正确处理。以上就是 MySQL 一次向表中插入多条数据的详细内容,更多关于 MySQL 批量操作优化技巧的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









