如何在python中存储SQL表来使用它?

2024-04-20 13:39:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望在python中使用SQL中的表。我想将整个表存储在一个名为'mat'的矩阵中,然后在python代码之后获得输出,这样我就可以用SQL再次读取表了。我是这样开始的:

import pyodbc
import pandas as pd
server = 'myserver'
database = 'mydatabase'
username = 'myuser'
password = 'mypassword'
cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password) 

******Python code*******

mat=pd.read_sql('select * from mytable order by time' , con = cnxn)

如何读取表以将其存储在mat中,然后如何将其发送回SQL?在


Tags: 代码importpandassqlserverasusername矩阵
2条回答

我就是这样做的。在

import mysql.connector
import pandas as pd
import numpy as np
# use this to display ALL columns...useful, but definitely not required
pd.set_option('display.max_columns', None)


mydb = mysql.connector.connect(
  host="localhost",
  user="duser_name",
  passwd="pswd",
  database="db_naem"
)

mycursor = mydb.cursor()

mycursor.execute("SELECT * FROM YourTable")

myresult = mycursor.fetchall()

df = pd.DataFrame(myresult)

df.to_csv('C:\\path_here\\test.csv', sep=',')

您可以轻松地将数据帧转换为矩阵。在

^{pr2}$

但我不知道你为什么要这么做。我认为datframes对大多数人的需求更实用。在

您已经将数据读入DataFrame。如果要将数据帧转换为矩阵,请执行mat.values。如果要将数据写入sql表,则必须创建一个cursor并使用它来插入数据。在

cursor = cnxn.cursor()
cursor.execute(''' INSERT INTO myTable (FirstName, LastName) VALUES ('Wilsamson', 'Shiphrah') ''')

如果有多个值,应该使用executemany命令

^{pr2}$

INSERT语句的末尾,您需要在关闭cursorconnection之前commit插入。在

cursor.commit()
cursor.close()
cnxn.close()

如果你想改变

相关问题 更多 >