用 CSV 快速写入 MySQL 数据库(csv 写入 mysql)

用 CSV 快速写入 MySQL 数据库

CSV (Comma Separated Values)是一种常见的文件格式,用于在电子表格和数据库之间进行数据交换。MySQL是一种常见的关系型数据库,它支持使用CSV格式导入和导出数据。

在本文中,我们将介绍如何使用CSV文件来快速写入MySQL数据库。

步骤一:创建CSV文件

我们需要创建一个包含要写入MySQL数据库的数据的CSV文件。假设我们要将以下数据写入MySQL数据库中的名为“students”的表中:

| id | name | age |

|—-|———-|—–|

| 1 | Tom | 18 |

| 2 | Jim | 20 |

| 3 | Mary | 19 |

| 4 | John | 21 |

| 5 | Samantha | 18 |

我们可以使用任何电子表格程序(如Microsoft Excel或Google Sheets)创建此CSV文件,并将其保存为逗号分隔的格式。

步骤二:连接到MySQL数据库

在Python中,我们可以使用MySQL Connector模块来连接到MySQL数据库。我们需要安装此模块并导入它:

“`python

import mysql.connector


然后,我们需要使用MySQL数据库的用户名和密码(如果有)以及要连接到的数据库的名称来建立连接:

```python
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="students"
)

步骤三:创建游标对象

在MySQL数据库中,游标(cursor)是用于执行SQL语句的对象。我们需要创建一个游标对象来执行INSERT语句并将CSV文件中的数据写入MySQL数据库。

“`python

mycursor = mydb.cursor()


步骤四:使用LOAD DATA INFILE命令插入数据

MySQL数据库提供了一个名为LOAD DATA INFILE的命令,该命令可以将CSV文件中的数据导入数据库表中。我们可以使用这个命令来避免逐行插入数据,这将大大增加代码的执行时间。

以下是使用LOAD DATA INFILE命令将数据从CSV文件写入MySQL数据库的示例代码:

```python
sql = "LOAD DATA INFILE 'students.csv' INTO TABLE students FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 ROWS;"
mycursor.execute(sql)

在上面的代码中,我们使用LOAD DATA INFILE命令将文件“students.csv”的数据写入名为“students”的表中。我们指定CSV文件中字段之间的分隔符为逗号,行分隔符为换行符。我们还忽略了CSV文件中的第一行,因为它包含表头。

步骤五:提交更改

在执行INSERT语句(或任何其他修改表数据的命令)之后,我们需要调用commit()方法将更改提交到MySQL数据库:

“`python

mydb.commit()


完整代码如下:

```python
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="students"
)
mycursor = mydb.cursor()

sql = "LOAD DATA INFILE 'students.csv' INTO TABLE students FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 ROWS;"
mycursor.execute(sql)
mydb.commit()

使用CSV文件将数据写入MySQL数据库是快速而方便的方法。它可以减少需要手动编写大量INSERT语句的时间和努力。但是,由于使用LOAD DATA INFILE命令来插入数据,需要注意安全问题,特别是在通过网络连接到MySQL数据库时。在这种情况下,建议使用Secure File Privilege选项来限制可以读取/写入的文件路径,并确保只有受信任的用户能够访问文件。


数据运维技术 » 用 CSV 快速写入 MySQL 数据库(csv 写入 mysql)