只要写一次insert,可以插入多条数据

基本语法:
insert into 表名 [(字段列表)] values (值列表), (值列表)...;
create table my_student(
id int primary key auto_increment,
name varchar(10)
);
insert into my_student (name) values ('张三'), ('李四'), ('王五');
mysql> select * from my_student;
+----+--------+
| id | name |
+----+--------+
| 1 | 张三 |
| 2 | 李四 |
| 3 | 王五 |
+----+--------+
insert into my_student (id, name) values (1, '张飞'); ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
如果插入过程中主键冲突,那么采用更新方式
insert into 表名 [(字段列表)] on duplicate key update 字段=新值; insert into my_student (id, name) values (1, '张飞') on duplicate key update name = '张飞'; mysql> select * from my_student; +----+--------+ | id | name | +----+--------+ | 1 | 张飞 | | 2 | 李四 | | 3 | 王五 | +----+--------+
replace into 表名 [(字段列表)] values (值列表); replace into my_student (id, name) values (1, '刘备'); mysql> select * from my_student; +----+--------+ | id | name | +----+--------+ | 1 | 刘备 | | 2 | 李四 | | 3 | 王五 | +----+--------+
一分为二,成倍增加
从已有的数据中获取数据,并且插入到数据表中
insert into 表名 [(字段列表)] select */字段列表 from 表名; insert into my_student (name) select name from my_student; mysql> select * from my_student; +----+--------+ | id | name | +----+--------+ | 1 | 刘备 | | 2 | 李四 | | 3 | 王五 | | 4 | 刘备 | | 5 | 李四 | | 6 | 王五 | +----+--------+
注意: