在 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 查询

无法在 python 中对 bigquery 运行标准 SQL 查询

SQL 查询未在 Python 中运行

通过 Python 通过命令运行 SQL

python 使用Python从远程数据库运行SQL查询。

使用python执行SQL查询时语法无效[关闭]