在 Python 中运行 SQL 查询
Posted
技术标签:
【中文标题】在 Python 中运行 SQL 查询【英文标题】:Run SQL Query in Python 【发布时间】:2020-11-01 04:33:27 【问题描述】:我需要在 python 中转换一个大的 SQL 代码。除了将 SQL 代码转换为 python,有什么方法可以在 python 脚本中运行 sql 查询?假设我的 MsSqlServer 中有一个存储过程。如何在 python 中调用该存储过程?
【问题讨论】:
easysoft.com/developer/languages/python/examples/CallSP.html 【参考方案1】:有很多方法可以在 Python 脚本中运行 SQL 命令。查看SqlAlchemy。
【讨论】:
【参考方案2】:您可以将SQLAlchemy 与支持Microsoft SQL Server 的PyODBC 驱动程序一起使用。您可以直接从 PyPi 安装这两个软件包。
from sqlalchemy import create_engine
engine = create_engine("mssql+pyodbc://user:pass@dsn")
engine.execute("SELECT 1;")
【讨论】:
【参考方案3】:一种方法可能如下(您可以保存整个查询,这当然比示例中的更复杂):
# Import sqlalchemy's create_engine() function
from sqlalchemy import create_engine
import pandas as pd
# Create the database engine
engine = create_engine("mssql+pyodbc://user:pass@dsn")
# Create a SQL query to load the entire table
query = """
SELECT *
FROM XXX;
"""
# Load with the SQL query
load = pd.read_sql(query, engine)
【讨论】:
对于需要在开头导入pandas的:import pandas as pd.我已经修改了上面的回复【参考方案4】:如果您基本上在 XAMP 中使用 mysql localhost,那么您可以在您的 python 文件中包含以下代码,无需使用 sql 语句 SQLALchemy 可以正常工作。
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:@localhost/yourdatabasename'
【讨论】:
【参考方案5】:除了其他答案之外,使用 sqlalchemy (https://www.sqlalchemy.org/) 可以执行原始 SQL,而无需使用“pythonic”对象方式来执行 db 操作。例如,对于 SQLITE(您可以使用其他驱动程序),您可以这样运行它。
# install with `pip install sqlalchemy`
import sqlalchemy as db
engine = db.create_engine('sqlite:///my-example-db.sqlite')
with engine.connect() as con:
rs = con.execute('SELECT * FROM myexampletable')
for row in rs:
print(row)
【讨论】:
以上是关于在 Python 中运行 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章
如何在 python jupyter notebook 中运行 bigquery SQL 查询