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方式。根据实际情况选择合适的方式,可以提高数据插入的效率。