ホームページ > データベース > mysql チュートリアル > Python で外部 SQL クエリ (テーブル作成以外のクエリを含む) を実行するにはどうすればよいですか?

Python で外部 SQL クエリ (テーブル作成以外のクエリを含む) を実行するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-28 02:35:08
オリジナル
841 人が閲覧しました

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

Python での外部 SQL スクリプトの読み取り

質問: Python スクリプト内から外部 SQL クエリを実行するにはどうすればよいですか? 、特にテーブル作成以外を扱う場合queries?

説明:

Python で SQL コマンドを実行するには、sqlite3 モジュールを使用できます。このモジュールは、SQLite データベース管理システムへのインターフェイスを提供します。外部 SQL スクリプトを読み取るには、次の手順に従います。

  1. ファイルを開いて読み取ります。 SQL ファイルを開いて、その内容を文字列に読み取ります。
  2. コマンドを分割します: 文字列を次の文字で区切って個々の SQL コマンドのリストに分割します。 ;.
  3. コマンドを実行します: コマンドのリストを反復処理し、カーソル オブジェクトの c.execute(command) メソッドを使用してコマンドを 1 つずつ実行します。

コード例:

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 は、テーブル作成以外のクエリです。これらを実行するには、SELECT * クエリではなく c.execute メソッドを直接使用できます:

# 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート