首頁 >資料庫 >mysql教程 >如何在 Python 中從外部腳本執行 SQL 查詢並處理特定於表的查詢?

如何在 Python 中從外部腳本執行 SQL 查詢並處理特定於表的查詢?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-30 03:54:08372瀏覽

How Can I Execute SQL Queries from an External Script in Python and Handle Table-Specific Queries?

在 Python 中從外部腳本執行 SQL 查詢

使用 Python 和 SQL 時,通常會遇到需要執行儲存在外部腳本中的 SQL 查詢的情況。這個過程包括讀取腳本,將其分解為單獨的查詢,然後逐一執行它們。

提供的程式碼

import sqlite3
from sqlite3 import OperationalError

conn = sqlite3.connect('csc455_HW3.db')
c = conn.cursor()

# Open and read the file as a single buffer
fd = open('ZooDatabase.sql', 'r')
sqlFile = fd.read()
fd.close()

# all SQL commands (split on ';')
sqlCommands = sqlFile.split(';')

# Execute every command from the input file
for command in sqlCommands:
    # This will skip and report errors
    # For example, if the tables do not yet exist, this will skip over
    # the DROP TABLE commands
    try:
        c.execute(command)
    except OperationalError, msg:
        print "Command skipped: ", msg

此程式碼有效地將SQL 腳本讀取為字串,拆分將其分解為單獨的命令,並使用c.execute() 執行它們。但是,提供的程式碼片段中的其餘程式碼不完整,需要修改以處理特定於表的查詢。

執行特定於表的查詢

程式碼缺少執行表的步驟-具體查詢。為此,您可以修改程式碼如下:

for table in ['ZooKeeper', 'Animal', 'Handles']:
    result = c.execute("SELECT ANAME,zookeepid FROM ANIMAL, HANDLES WHERE AID=ANIMALID;")
    rows = result.fetchall()
    print("\n--- TABLE", table, "\n")

    for desc in result.description:
        print(desc[0].rjust(22, ' '), end=", ")  # Print column names

    print()

    for row in rows:
        for value in row:
            print(str(value).rjust(22, ' '), end=", ")  # Print each value
        print()

此程式碼將循環遍歷表名稱並為每個表執行指定的查詢。然後,它格式化並列印表格詳細資料、列名稱和行資料。

以上是如何在 Python 中從外部腳本執行 SQL 查詢並處理特定於表的查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn