在 Python 中读取外部 SQL 脚本
问题:如何从 Python 脚本中执行外部 SQL 查询,尤其是在处理非表创建时查询?
说明:
要在 Python 中运行 SQL 命令,可以使用 sqlite3 模块。该模块提供了 SQLite 数据库管理系统的接口。要读取外部 SQL 脚本,可以按照以下步骤操作:
代码示例:
import sqlite3 # Open the database connection conn = sqlite3.connect('database.db') c = conn.cursor() # Read the SQL file with open('external_sql.sql', 'r') as f: sql_file = f.read() # Split the commands sql_commands = sql_file.split(';') # Execute the commands for command in sql_commands: try: c.execute(command) except sqlite3.OperationalError as e: print(f"Command skipped: {e}") # Commit the changes and close the connection conn.commit() c.close() conn.close()
特定查询:
您提供的 SQL 脚本中的查询 1.1 和 1.2 是非建表查询。要执行它们,您可以直接使用 c.execute 方法而不是 SELECT * 查询:
# Query 1.1 result = c.execute( """ SELECT ANAME,zookeepid FROM ANIMAL, HANDLES WHERE AID=ANIMALID; """ ) # Get the results rows = result.fetchall() # Print the results print("Query 1.1:") for row in rows: print(row) # Query 1.2 result = c.execute( """ SELECT ZNAME, SUM(TIMETOFEED) FROM ZOOKEEPER, ANIMAL, HANDLES WHERE AID=ANIMALID AND ZOOKEEPID=ZID GROUP BY zookeeper.zname; """ ) # Get the results rows = result.fetchall() # Print the results print("Query 1.2:") for row in rows: print(row)
以上是如何在Python中执行外部SQL查询(包括非建表查询)?的详细内容。更多信息请关注PHP中文网其他相关文章!