📜  自动将 csv 导入到 mysql 服务器 - SQL (1)

📅  最后修改于: 2023-12-03 15:11:47.315000             🧑  作者: Mango

自动将 csv 导入到 mysql 服务器 - SQL

如果您正在寻找一种自动将 CSV 文件导入到 MySQL 服务器的方法,那么您来对地方了。本文将介绍如何使用Python编写一个自动化脚本来实现此目标。

程序架构

我们将使用Python编写脚本,并使用以下库:

  • pandas:用于读取CSV文件和查看数据
  • sqlalchemy:提供了一种连接MySQL数据库的简单方法
  • mysql-connector-python:用于连接MySQL数据库
步骤

以下是步骤的详细说明:

  1. 安装所需库

    请使用以下命令安装所需库:

    !pip install pandas
    !pip install sqlalchemy
    !pip install mysql-connector-python
    
  2. 导入所需库

    让我们用以下代码导入所需库:

    import pandas as pd
    from sqlalchemy import create_engine
    import mysql.connector
    
  3. 读取 CSV 文件

    接下来,我们将使用 Pandas 库中的 read_csv() 方法读取 CSV 文件并查看其内容:

    data = pd.read_csv("test.csv")
    print(data.head())
    

    输出:

         id  name  age
    0    1   Tom   21
    1    2  Jack   22
    2    3   Kim   23
    3    4  John   24
    
  4. 连接到 MySQL 数据库

    接下来,我们需要使用 MySQL 的用户名和密码来连接到 MySQL 服务器。我们将使用 mysql.connector 库中的 connect() 方法来进行连接:

    mydb = mysql.connector.connect(
        host="localhost",
        user="root",
        password="password",
        database="mydatabase"
    )
    

    其中,

    • host:MySQL 服务器地址
    • user:MySQL 用户名
    • password:MySQL 密码
    • database:MySQL 数据库名称
  5. 创建表

    接下来,我们需要使用 SQL 创建表来存储 CSV 文件中的数据。我们将使用 SQLAlchemy 库中的 create_engine() 方法来创建引擎,并使用引擎来创建表:

    table_name = "test"
    engine = create_engine('mysql+mysqlconnector://root:password@localhost/mydatabase', echo=False)
    data.to_sql(name=table_name, con=engine, if_exists = 'replace', index=False)
    

    其中,

    • table_name:表名称
    • engine:数据库引擎
    • if_exists:指定何时写入数据,可接受的值是 appendreplacefail。在本例中,我们使用 replace,表示如果表存在,则删除它并创建一个新表。
  6. 检查结果

    接下来,我们可以在 MySQL 数据库中检查表和数据是否已创建。我们可以使用以下 SQL 语句来检查:

    SELECT * FROM test;
    
完整代码

最后,以下是完整的 Python 代码片段:

import pandas as pd
from sqlalchemy import create_engine
import mysql.connector

# 读取 CSV 文件
data = pd.read_csv("test.csv")
print(data.head())

# 连接到 MySQL 数据库
mydb = mysql.connector.connect(
    host="localhost",
    user="root",
    password="password",
    database="mydatabase"
)

# 创建表
table_name = "test"
engine = create_engine('mysql+mysqlconnector://root:password@localhost/mydatabase', echo=False)
data.to_sql(name=table_name, con=engine, if_exists = 'replace', index=False)

# 检查结果
cur = mydb.cursor()
cur.execute("SELECT * FROM test;")
result = cur.fetchall()
print(result)
结论

这就是如何使用 Python 编写自动化脚本,将 CSV 文件导入到 MySQL 服务器的步骤。希望这篇文章对您有所帮助!