困惑:
從外部檔案執行 SQL在查詢時,一些開發人員可能會遇到以下問題:對線條感到困惑像:
result = c.execute("SELECT * FROM %s;" % table);
解釋:
Python 中的字串格式允許我們動態地用值替換佔位符(%s)。在這種情況下,%s 被表變數的值替換,該值是表示表名稱的字串。因此,如果表格是“Animal”,則查詢將變為“SELECT * FROM Animal;”。
使用提供的程式碼:
提供的 Python 程式碼包含一個函數executeScriptsFromFile 可用來執行外部檔案中的所有 SQL 指令。
def executeScriptsFromFile(filename): with open(filename, 'r') as fd: sqlFile = fd.read() sqlCommands = sqlFile.split(';') for command in sqlCommands: try: c.execute(command) except OperationalError as msg: print("Command skipped: ", msg)
可以使用此函數執行zookeeper.sql檔案中的SQL查詢:
executeScriptsFromFile('zookeeper.sql')
查詢1.1和1.2:
查詢1.1和1.2:
查詢1.1和1.2已經包含在zookeeper中。 sql 文件。上面的程式碼將在檔案載入時執行它們。
完整程式碼:
import sqlite3 from sqlite3 import OperationalError conn = sqlite3.connect('csc455_HW3.db') c = conn.cursor() executeScriptsFromFile('zookeeper.sql') for table in ['ZooKeeper', 'Animal', 'Handles']: result = c.execute("SELECT * FROM %s;" % table) rows = result.fetchall() print("\n--- TABLE ", table, "\n") for desc in result.description: print(desc[0].rjust(22, ' '), end=',') print() # End the line with column names for row in rows: for value in row: print(str(value).rjust(22, ' ')) print() c.close() conn.close()
以上是如何在Python中有效率地從外部文件執行SQL查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!