Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Melaksanakan Pertanyaan SQL Luaran (Termasuk Pertanyaan Penciptaan Bukan Jadual) dalam Python?

Bagaimana untuk Melaksanakan Pertanyaan SQL Luaran (Termasuk Pertanyaan Penciptaan Bukan Jadual) dalam Python?

Patricia Arquette
Lepaskan: 2024-12-28 02:35:08
asal
843 orang telah melayarinya

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

Membaca Skrip SQL Luaran dalam Python

Soalan: Bagaimanakah saya boleh melaksanakan pertanyaan SQL luaran dari dalam skrip Python , terutamanya apabila berurusan dengan penciptaan bukan meja pertanyaan?

Penjelasan:

Untuk menjalankan arahan SQL dalam Python, anda boleh menggunakan modul sqlite3. Modul ini menyediakan antara muka kepada sistem pengurusan pangkalan data SQLite. Untuk membaca skrip SQL luaran, anda boleh mengikuti langkah berikut:

  1. Buka dan baca fail: Buka fail SQL dan baca kandungannya ke dalam rentetan.
  2. Pisah arahan: Pisahkan rentetan ke dalam senarai perintah SQL individu, dipisahkan dengan ;.
  3. Laksanakan arahan: Ulangi senarai arahan dan laksanakan satu persatu menggunakan kaedah c.execute(command) objek kursor.

Kod Contoh:

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()
Salin selepas log masuk

Pertanyaan Khusus:

Pertanyaan 1.1 dan 1.2 dalam skrip SQL yang anda sediakan ialah pertanyaan bukan penciptaan jadual. Untuk melaksanakannya, anda boleh menggunakan kaedah c.execute secara langsung dan bukannya pertanyaan 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)
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pertanyaan SQL Luaran (Termasuk Pertanyaan Penciptaan Bukan Jadual) dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan