MySQL中可以使用INSERT INTO语句来插入数据,对于批量插入数据,有以下几种方式:
- 使用多个INSERT INTO语句
这是最常见的方式,即使用多个INSERT INTO语句将数据一条一条地插入。例如:
INSERT INTO table_name (column1, column2, column3)
VALUES (value1_1, value1_2, value1_3),
(value2_1, value2_2, value2_3),
(value3_1, value3_2, value3_3);
其中,table_name是表名,column1、column2、column3是列名,valueX_Y表示第X行第Y列的值。
缺点是需要写很多的SQL语句,不适合大规模数据的插入。
- 使用LOAD DATA INFILE语句
如果你要从文件导入大量数据到MySQL中,则可以使用LOAD DATA INFILE语句。该语句会将一个文件中的数据读取到MySQL中。例如:
LOAD DATA INFILE '/path/to/file.csv'
INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(column1, column2, column3);
其中,/path/to/file.csv为CSV格式的文件路径;table_name为目标表名;FIELDS TERMINATED BY ‘,‘表示字段之间以逗号分隔;LINES TERMINATED BY ‘\n’表示行之间以换行符分隔。
需要注意的是,在执行该命令前需要通过以下命令开启LOCAL INFILE选项:
mysql -u root -p --local-infile=1
- 使用INSERT INTO … SELECT语句
如果你已经有了一个数据集,可以使用INSERT INTO … SELECT语句将数据从一个表中插入到另一个表中。例如:
INSERT INTO table_name (column1, column2, column3)
SELECT value1_1, value1_2, value1_3 FROM source_table
UNION ALL
SELECT value2_1, value2_2, value2_3 FROM source_table
UNION ALL
SELECT value3_1, value3_2, value3_3 FROM source_table;
其中,source_table为源表名。
以上就是MySQL批量插入数据的几种方式,根据实际情况选择适合自己的方式即可。