MySQL 如何在MySQL查询中一次性进行多次插入或批量插入?

MySQL 如何在MySQL查询中一次性进行多次插入或批量插入?

在MySQL查询中,我们经常需要对数据库进行插入操作。如果只有少量数据需要插入,我们可以使用单次插入的方式,但如果需要插入大量的数据,一次次插入的效率会显著降低。这时我们可以考虑使用一次性进行多次插入或批量插入的方式,来提高插入操作的效率。

阅读更多:MySQL 教程

一次性进行多次插入的方式

一次性进行多次插入即是在一个查询中一次性插入多条记录。下面是一个示例:

INSERT INTO `students` (`name`, `gender`, `age`) VALUES 
('小明', '男', 18),
('小红', '女', 17),
('小华', '女', 18),
('小李', '男', 19),
('小刚', '男', 18);

示例中,在 VALUES 关键字后面,我们可以一次性插入多个值,每个值由一组括号括起来,中间用逗号分隔。我们可以通过这种方式,一次性插入多条记录。

批量插入的方式

批量插入是指通过一次 SQL 查询,同时向数据库中插入多条记录。与一次性进行多次插入的方式类似,批量插入需要将多个值全部放在同一个 VALUES 子句中。下面是一个示例:

INSERT INTO `students` (`name`, `gender`, `age`) VALUES 
('小明', '男', 18),
('小红', '女', 17),
('小华', '女', 18),
('小李', '男', 19),
('小刚', '男', 18),
('小丽', '女', 20),
('小白', '女', 21),
('小黑', '男', 19),
('小张', '男', 18),
('小王', '男', 20);

但是,与一次性进行多次插入的方式不同的是,批量插入在插入语句的末尾需要使用 ON DUPLICATE KEY UPDATE 语句。ON DUPLICATE KEY UPDATE 语句用于在遇到主键或唯一索引冲突时,执行更新操作。即当插入的记录已经存在时,更新原有记录,而不是插入新的记录。

下面的示例展示了如何使用 ON DUPLICATE KEY UPDATE 语句:

INSERT INTO `students` (`name`, `gender`, `age`) VALUES 
('小明', '男', 18),
('小红', '女', 17),
('小华', '女', 18),
('小李', '男', 19),
('小刚', '男', 18),
('小丽', '女', 20),
('小白', '女', 21),
('小黑', '男', 19),
('小张', '男', 18),
('小王', '男', 20)
ON DUPLICATE KEY UPDATE `name` = VALUES(`name`), `gender` = VALUES(`gender`), `age` = VALUES(`age`);

在此示例中,我们使用 ON DUPLICATE KEY UPDATE 语句,如果插入的记录主键冲突,则使用 VALUES 函数更新记录的值。

结论

MySQL 查询中,一次性进行多次插入或批量插入可以大大提高查询的效率,特别是插入大量数据时。在使用批量插入时,需要注意使用 ON DUPLICATE KEY UPDATE 语句来避免主键冲突问题。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程