MySQL表数据转换到SQL Server
流程图
gantt
title 数据转换流程
section 数据提取
任务1: MySQL数据提取 :a1, 2022-01-01, 4d
任务2: 数据导出为CSV文件 :a2, after a1, 4d
section 数据导入
任务3: SQL Server数据导入 :a3, after a2, 4d
步骤说明
| 步骤 |
描述 |
| 1. 数据提取 |
从MySQL数据库中提取表数据,并导出为CSV文件 |
| 2. 数据导入 |
将CSV文件中的数据导入到SQL Server中的相应表 |
详细步骤及代码
数据提取
- 连接到MySQL数据库:
```python
import mysql.connector
# 连接到MySQL数据库
conn_mysql = mysql.connector.connect(
user='username',
password='password',
host='localhost',
database='database_name'
)
2. 查询MySQL表数据:
```markdown
```python
# 创建游标对象
cursor_mysql = conn_mysql.cursor()
# 执行查询语句
query = "SELECT * FROM table_name"
cursor_mysql.execute(query)
# 获取查询结果
result = cursor_mysql.fetchall()
3. 关闭MySQL数据库连接:
```markdown
```python
# 关闭游标和连接
cursor_mysql.close()
conn_mysql.close()
4. 将查询结果导出为CSV文件:
```markdown
```python
import csv
# 指定CSV文件路径
filename = 'data.csv'
# 将查询结果写入CSV文件
with open(filename, 'w', newline='', encoding='utf-8') as csvfile:
writer = csv.writer(csvfile)
writer.writerow([i[0] for i in cursor_mysql.description]) # 写入表头
writer.writerows(result) # 写入数据行
### 数据导入
1. 连接到SQL Server数据库:
```markdown
```python
import pyodbc
# 连接到SQL Server数据库
conn_sqlserver = pyodbc.connect(
'DRIVER={SQL Server};'
'SERVER=server_name;'
'DATABASE=database_name;'
'UID=username;'
'PWD=password;'
)
2. 创建SQL Server表:
```markdown
```python
# 创建游标对象
cursor_sqlserver = conn_sqlserver.cursor()
# 创建表的SQL语句
create_table_sql = """
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
...
)
"""
# 执行创建表的SQL语句
cursor_sqlserver.execute(create_table_sql)
# 提交事务
conn_sqlserver.commit()
3. 导入CSV文件数据到SQL Server表:
```markdown
```python
# 打开CSV文件
with open(filename, 'r', encoding='utf-8') as csvfile:
csvdata = csv.reader(csvfile)
next(csvdata) # 跳过表头
# 构建插入数据的SQL语句
insert_sql = """
INSERT INTO table_name (column1, column2, ...)
VALUES (?, ?, ...)
"""
# 逐行插入数据
for row in csvdata:
cursor_sqlserver.execute(insert_sql, row)
# 提交事务
conn_sqlserver.commit()
4. 关闭SQL Server数据库连接:
```markdown
```python
# 关闭游标和连接
cursor_sqlserver.close()
conn_sqlserver.close()
## 总结
本文介绍了将MySQL表数据转换为SQL Server的方法,包括数据提取和数据导入两个步骤。在数据提取阶段,我们首先连接到MySQL数据库,然后执行查询语句获取数据,并将结果导出为CSV文件。在数据导入阶段,我们连接到SQL Server数据库,创建相应的表,然后逐行读取CSV文件中的数据,插入到SQL Server表中。
这个过程需要使用MySQL的Python驱动程序(如`mysql-connector-python`)和SQL Server的Python驱动程序(如`pyodbc`)。通过以上步骤,你可以成功将MySQL表数据转换到SQL Server中。