首頁 > 資料庫 > mysql教程 > 如何在Python中執行外部SQL查詢(包括非建表查詢)?

如何在Python中執行外部SQL查詢(包括非建表查詢)?

Patricia Arquette
發布: 2024-12-28 02:35:08
原創
836 人瀏覽過

How to Execute External SQL Queries (Including Non-Table Creation Queries) in Python?

在Python 中讀取外部SQL 腳本

問題:如何從Python 腳本執行外部SQL 腳本中執行外部SQL 查詢,尤其是在處理非表創建時查詢?

說明:

要在 Python 中執行 SQL 指令,可以使用 sqlite3 模組。此模組提供了 SQLite 資料庫管理系統的介面。要讀取外部 SQL 腳本,可以按照以下步驟操作:

  1. 開啟並讀取檔案:開啟 SQL 檔案並將其內容讀入字串。
  2. 分割指令: 將字串分割為單一SQL 指令的列表,用;.
  3. 執行指令:遍歷指令列表,並使用遊標物件的c.execute(command) 方法一一執行。

程式碼範例:

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中文網其他相關文章!

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