欢迎访问宙启技术站
智能推送

数据库转换示例:以Python编写的数据库转换例子

发布时间:2023-12-14 17:08:05

数据库转换是指将一个数据库中的数据转移到另一个数据库中的过程。这在数据迁移、数据同步等场景下经常会用到。

下面是一个使用Python编写的数据库转换示例,以将一个MySQL数据库中的数据转移到一个SQLite数据库中为例。

首先,我们需要安装Python的MySQL和SQLite驱动,可以使用以下命令进行安装:

pip install mysql-connector-python
pip install sqlite3

接下来,我们需要连接到MySQL数据库并获取数据。可以使用下面的代码:

import mysql.connector

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

# 获取数据
cursor = db.cursor()
cursor.execute("SELECT * FROM users")
data = cursor.fetchall()

然后,我们需要连接到SQLite数据库并将数据插入到其中。可以使用以下代码:

import sqlite3

# 连接到SQLite数据库
conn = sqlite3.connect('example.db')

# 创建表
conn.execute('''CREATE TABLE users
                (id INT PRIMARY KEY     NOT NULL,
                name           TEXT    NOT NULL,
                email          TEXT    NOT NULL);''')

# 插入数据
for row in data:
    conn.execute("INSERT INTO users (id, name, email) VALUES (?, ?, ?)", row)

# 提交更改
conn.commit()
conn.close()

最后,我们可以运行以下代码测试转换过程:

import mysql.connector
import sqlite3

# 连接到MySQL数据库并获取数据
db = mysql.connector.connect(
    host="localhost",
    user="root",
    password="password",
    database="example"
)
cursor = db.cursor()
cursor.execute("SELECT * FROM users")
data = cursor.fetchall()

# 连接到SQLite数据库并插入数据
conn = sqlite3.connect('example.db')
conn.execute('''CREATE TABLE users
                (id INT PRIMARY KEY     NOT NULL,
                name           TEXT    NOT NULL,
                email          TEXT    NOT NULL);''')
for row in data:
    conn.execute("INSERT INTO users (id, name, email) VALUES (?, ?, ?)", row)
conn.commit()
conn.close()

上述代码中,假设MySQL数据库中有一个名为"users"的表,包含id、name和email字段。我们将这些数据转移到一个名为"example.db"的SQLite数据库中,并创建一个名为"users"的表。