mysql多行插入

在实际开发中,我们经常需要往数据库中插入多行数据。如果数据量比较大,一条一条地插入数据显然效率很低。这时就可以使用mysql的多行插入语法来一次性插入多行数据,提高效率。
使用INSERT INTO VALUES方式插入多行数据
使用INSERT INTO VALUES方式插入多行数据是一种常见的方法。语法如下:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES
(value1, value2, value3),
(value4, value5, value6),
...
其中,table_name是要插入数据的表名,column1, column2, column3, ...是要插入的列名,value1, value2, value3是要插入的值。
举个示例,假设我们有一个表users,包含id, name, age三个列,我们要往表中插入两条数据:
INSERT INTO users (name, age)
VALUES
('Alice', 25),
('Bob', 30);
上面的语句将会往users表中插入两条数据,一条是name为Alice,age为25,另一条是name为Bob,age为30。
使用INSERT INTO SELECT方式插入多行数据
除了使用VALUES方式插入数据,还可以使用INSERT INTO SELECT方式插入多行数据。语法如下:
INSERT INTO table_name (column1, column2, column3, ...)
SELECT value1, value2, value3
UNION
SELECT value4, value5, value6
...
其中,table_name是要插入数据的表名,column1, column2, column3, ...是要插入的列名,SELECT value1, value2, value3是要插入的值。
举个示例,假设我们有一个表students,包含name, score两个列,我们希望从另一个表temp_students中选择部分数据插入到students表中:
INSERT INTO students (name, score)
SELECT name, score
FROM temp_students
WHERE score > 60;
上面的语句将会从temp_students表中选择score大于60的数据,并插入到students表中。
使用LOAD DATA INFILE方式插入多行数据
除了上面两种方式,还可以使用LOAD DATA INFILE方式插入多行数据。这种方式通常用于从文件中导入大量数据。语法如下:
LOAD DATA INFILE 'file_name.txt'
INTO TABLE table_name
(column1, column2, column3, ...);
其中,file_name.txt是包含数据的文件名,table_name是要插入数据的表名,column1, column2, column3, ...是要插入的列名。
举个示例,假设我们有一个文件data.txt,内容如下:
Alice,25
Bob,30
我们想要将这些数据插入到users表中:
LOAD DATA INFILE 'data.txt'
INTO TABLE users
(name, age);
上面的语句将会将data.txt中的数据插入到users表中。
总结
本文详细介绍了mysql中插入多行数据的几种方法,包括使用INSERT INTO VALUES方式、INSERT INTO SELECT方式和LOAD DATA INFILE方式。根据实际情况选择合适的方式,可以提高数据插入的效率。
极客教程