如何用mssql将数据导入python?

问题遇到的现象和发生背景

目前我需要编写一个python的代码需要和sql server相连然后在python上写一个入参代码验证一个数据表单的数据准确性和逻辑准确性,目前我的python已经连接上sql server了,然后我在python上建了一个新表,现在就是不知道这么把sql server数据库里的数据导入到python上进行衍生计算并且把计算出来的结果插入我在python上建的表的字段里。

import pymssql
import pandas as pd
import numpy as np
server = 'xx.xxx.xx.xx'
user = "xxxxx"
password = "xxxxx"
database = "xxxx"
charset ='GBK'
conn = pymssql.connect(server, user, password, database, charset)

QT_QuoteTecIndex = pd.DataFrame(columns=['InnerCode','TradingDay','RehabiliType','ClosePrice','CurrencyUnit',...])

目前因为卡在前期这一步所以没办法进行接下来的衍生计算部分

我尝试过使用本地赋值语句套用sql server数据导入数据语句但是这样貌似行不通,有没有专业人士指点一下。

我想要达到的结果是能够成功调用sql server中的数据进行计算并把计算完的结果插入到python本地建的表中。

你为什么总纠结导入
python是个高级语言工具,它又不是数据库,你把数据导入python它存哪呀
你应该在python里写个select语句然后执行
是用python去操作数据库,不是用数据库操作python
搜一搜pymssql增删改查

可以使用 pandas 的 read_sql() 函数从 MySQL 数据库中读取数据并构建成 dataframe。这个函数接受一个 SQL 查询和一个连接对象作为输入,返回一个包含结果数据的 dataframe。

举个例子,你可以这样使用 read_sql() 从数据库中的 QT_QuoteTecIndex 表中读取数据:

import pandas as pd
import pymysql

server = 'xx.xxx.xx.xx'
user = "xxxxx"
password = "xxxxx"
database = "xxxx"

# 连接数据库
connection = pymysql.connect(server, user, password, database)

# 定义 SQL 查询
query = 'SELECT * FROM QT_QuoteTecIndex'

# 从数据库中读取数据
QT_QuoteTecIndex = pd.read_sql(query, connection)

接下来通过将列名列表传递给 pd.DataFrame() 构造函数的 columns 参数来指定要包含在 dataframe 中的列名即可:

columns = ['InnerCode','TradingDay','RehabiliType','ClosePrice','CurrencyUnit',...]
QT_QuoteTecIndex = pd.DataFrame(columns=columns)

可以使用Python的pyodbc模块来连接SQL Server数据库并执行SQL语句,将数据导入Python中进行处理。

首先,你需要安装pyodbc模块。可以使用pip安装:

pip install pyodbc

然后,你需要在Python代码中导入pyodbc模块,并使用pyodbc.connect()函数连接到SQL Server数据库。你需要提供数据库的连接字符串,这个字符串需要包含数据库服务器的名称、数据库名称、用户名和密码等信息。

import pyodbc

# 连接字符串
conn_str = 'DRIVER={SQL Server};SERVER=localhost;DATABASE=mydatabase;UID=myusername;PWD=mypassword'

# 连接到数据库
conn = pyodbc.connect(conn_str)

然后,你可以使用conn.cursor()函数创建一个游标,并使用游标的execute()方法执行SQL语句。

# 创建游标
cursor = conn.cursor()

# 执行SQL语句,获取数据
cursor.execute('SELECT * FROM mytable')

# 获取所有行
rows = cursor.fetchall()

# 遍历行
for row in rows:
    print(row)

你也可以使用游标的execute()方法执行带有参数的SQL语句,如插入数据的语句。

# 创建游标
cursor = conn.cursor()

# 执行带有参数的SQL语句,插入数据
cursor.execute('INSERT INTO mytable (column1, column2) VALUES (?, ?)', 'value1', 'value2')

# 提交事务
conn.commit()