首頁 > 資料庫 > mysql教程 > 如何在Python中有效率地從外部文件執行SQL查詢?

如何在Python中有效率地從外部文件執行SQL查詢?

Susan Sarandon
發布: 2024-12-29 22:35:10
原創
458 人瀏覽過

How Can I Efficiently Execute SQL Queries from an External File in Python?

在 Python 中查詢外部 SQL 檔案

困惑:

從外部檔案執行 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()
登入後複製
結合executeScriptsFromFile函數與資料表循環程式碼,可以簡化完整的Python程式碼如下:

以上是如何在Python中有效率地從外部文件執行SQL查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板