首页 > 数据库 > mysql教程 > 如何在Python中对多个表执行外部SQL查询?

如何在Python中对多个表执行外部SQL查询?

Barbara Streisand
发布: 2025-01-02 17:32:38
原创
855 人浏览过

How to Execute External SQL Queries Against Multiple Tables in Python?

在 Python 中执行外部 SQL 脚本

您目前正在学习如何在 Python 中执行 SQL 查询并拥有一个外部 SQL 文件创建并操作三个表中的数据:“Zookeeper”、“Handles”和“Animal”。此外,该文件包含一系列要针对这些表执行的查询。

在 Python 中执行如下查询时会出现混乱:

--1.1

SELECT ANAME,zookeepid
FROM ANIMAL, HANDLES
WHERE AID=ANIMALID;
登录后复制
--1.2

SELECT ZNAME, SUM(TIMETOFEED)
FROM ZOOKEEPER, ANIMAL, HANDLES
WHERE AID=ANIMALID AND ZOOKEEPID=ZID
GROUP BY zookeeper.zname;
登录后复制

这些查询是不是创建表,而是检索数据,这需要与插入或删除不同的方法data.

解决方案

要在 Python 中执行这些查询,您可以利用字符串格式将表名占位符 '%s' 动态替换为实际的您要查询的表名。以下是修改代码的方法:

result = c.execute("SELECT * FROM {} WHERE {} != {} AND {} != {};".format(table, column1, value1, column2, value2))
登录后复制

在此示例中,“{}”表示表、column1、value1、column2 和 value2 的占位符。然后,您可以根据要执行的查询将这些占位符替换为适当的值。

替代方法

您可以考虑的另一种方法是定义一个函数将表名和查询作为输入,无需字符串格式化。这种方法提供了更大的灵活性和可读性。

def execute_query(table, query):
    result = c.execute(query.format(table))
    # Do something with the results

for table in ['ZooKeeper', 'Animal', 'Handles']:
    query = "SELECT * FROM {} WHERE {} != {} AND {} != {};"
    execute_query(table, query)
登录后复制

这种方法允许您根据不同的条件执行查询,而无需修改查询本身。

以上是如何在Python中对多个表执行外部SQL查询?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板