CSV文件快速倒入MySQL数据库的方法(csv倒入mysql)
CSV文件快速倒入MySQL数据库的方法
CSV(Comma-Separated Values)是一种常用的文本文件格式,用来存储表格数据。而MySQL是目前最流行的关系型数据库之一,因此将CSV文件快速倒入MySQL数据库对于数据分析和数据处理来说非常重要。在本文中,我们将介绍如何使用Python和MySQL,以及适用于大型数据集的高效技巧,将CSV文件快速导入MySQL数据库。
第一步:创建MySQL数据库和数据表
我们需要在MySQL数据库中创建一个新的数据库和一张数据表来存储CSV文件的数据。以下为在MySQL中创建一个名为MyDatabase的数据库和一个包含两个字段(id和name)的数据表:
“`mysql
CREATE DATABASE MyDatabase;
USE MyDatabase;
CREATE TABLE myTable (
id INT PRIMARY KEY,
name VARCHAR(255)
);
第二步:使用Python将CSV文件导入MySQL数据库
接下来,我们需要使用Python编写代码来从CSV文件中读取数据并将其导入MySQL数据库中。以下是一个示例代码:
```pythonimport csv
import pymysql
# 打开CSV文件with open('myData.csv') as csvfile:
reader = csv.DictReader(csvfile) # 连接到MySQL数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='MyDatabase') cursor = conn.cursor()
# 遍历CSV文件中的每一行数据,将其插入MySQL数据库中 for row in reader:
id = int(row['id']) name = row['name']
sql = "INSERT INTO myTable (id, name) VALUES (%s, %s)" cursor.execute(sql, (id, name))
# 提交更改并关闭连接 conn.commit()
cursor.close() conn.close()
在代码中,我们使用了Python内置的csv模块来读取CSV文件的内容,并使用pymysql模块连接到MySQL数据库。然后,我们遍历CSV文件中的每一行数据,将其插入到MySQL数据表中。我们提交更改并关闭数据库连接。
第三步:使用LOAD DATA INFILE导入大型CSV文件
如果CSV文件十分大,那么使用Python逐行遍历和插入数据将变得相当缓慢。在这种情况下,我们可以使用MySQL提供的LOAD DATA INFILE语句来导入CSV文件。以下是一个示例代码:
“`mysql
LOAD DATA INFILE ‘/path/to/myData.csv’ INTO TABLE myTable
FIELDS TERMINATED BY ‘,’ ENCLOSED BY ‘”‘
LINES TERMINATED BY ‘\r\n’
IGNORE 1 ROWS;
在代码中,我们使用LOAD DATA INFILE语句将CSV文件导入到MySQL数据表中。在语句中,我们指定了CSV文件的路径以及CSV文件的格式。FIELDS TERMINATED BY指定了CSV文件中字段的分隔符,ENCLOSED BY指定了字段的包装符号,LINES TERMINATED BY指定了行的结束符。IGNORE 1 ROWS指定了忽略CSV文件的第一行数据,因为它通常是标题行。
总结
本文介绍了如何使用Python和MySQL将CSV文件快速导入MySQL数据库。对于小型数据集,我们可以使用Python逐行遍历和插入数据。对于大型数据集,我们可以使用MySQL的LOAD DATA INFILE语句将CSV文件直接导入到MySQL数据表中。遵循以上步骤,我们可以快速地将CSV文件导入MySQL数据库,并进行数据分析和处理。