MySQL批量导入数据可以通过多种方式实现,以下是几种常见的方法:
LOAD DATA INFILE
命令这是MySQL提供的一个非常高效的导入数据的命令,可以直接从文件中批量导入数据到数据库表中。
语法:
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[CHARACTER SET charset_name]
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
[IGNORE number LINES]
[(col_name_or_user_var,...)]
[SET col_name = expr,...]
示例:
假设有一个名为 data.txt
的文件,内容如下:
1,John,Doe
2,Jane,Smith
要将这些数据导入到 users
表中,可以使用以下命令:
LOAD DATA INFILE 'data.txt'
INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(id, first_name, last_name);
mysqlimport
工具mysqlimport
是一个命令行工具,可以用来导入文本文件到MySQL数据库。
语法:
mysqlimport [options] database textfile
示例:
mysqlimport -u username -p database_name data.txt
INSERT INTO ... SELECT
语句如果你已经有一个数据库表中的数据需要导入到另一个表中,可以使用 INSERT INTO ... SELECT
语句。
示例:
假设有两个表 source_table
和 destination_table
,结构相同,可以使用以下命令:
INSERT INTO destination_table (col1, col2, col3)
SELECT col1, col2, col3 FROM source_table;
你也可以使用编程语言(如Python、PHP等)来批量插入数据。
Python示例:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = [
('John', 'Highway 21'),
('Peter', 'Lowstreet 4'),
('Amy', 'Apple st 652'),
('Hannah', 'Mountain 21'),
('Michael', 'Valley 345'),
('Sandy', 'Ocean blvd 2'),
('Betty', 'Green Grass 1'),
('Richard', 'Sky st 331'),
('Susan', 'One way 98'),
('Vicky', 'Yellow Garden 2'),
('Ben', 'Park Lane 38'),
('William', 'Central st 954'),
('Chuck', 'Main Road 989'),
('Viola', 'Sideway 1633')
]
mycursor.executemany(sql, val)
mydb.commit()
print(mycursor.rowcount, "records inserted.")
通过以上方法,你可以高效地将大量数据批量导入到MySQL数据库中。
云+社区沙龙online[数据工匠]
极客说第一期
腾讯云存储知识小课堂
企业创新在线学堂
云+社区沙龙online [国产数据库]
云+社区沙龙online [国产数据库]
企业创新在线学堂
云+社区沙龙online [国产数据库]
企业创新在线学堂
领取专属 10元无门槛券
手把手带您无忧上云