> 데이터 베이스 > MySQL 튜토리얼 > Python의 외부 파일에서 SQL 쿼리를 효율적으로 실행하려면 어떻게 해야 합니까?

Python의 외부 파일에서 SQL 쿼리를 효율적으로 실행하려면 어떻게 해야 합니까?

Susan Sarandon
풀어 주다: 2024-12-29 22:35:10
원래의
459명이 탐색했습니다.

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

Python에서 외부 SQL 파일 쿼리

혼란:

외부 파일에서 SQL 쿼리를 실행할 때 일부 개발자는 선으로 인해 혼란스러워지다 like:

result = c.execute("SELECT * FROM %s;" % table);
로그인 후 복사

설명:

Python의 문자열 형식 지정을 사용하면 자리 표시자(%s)를 값으로 동적으로 바꿀 수 있습니다. 이 경우 %s는 테이블 이름을 나타내는 문자열인 테이블 변수의 값으로 대체됩니다. 따라서 테이블이 'Animal'인 경우 쿼리는 "SELECT * FROM Animal;"이 됩니다.

제공된 코드 사용:

제공된 Python 코드에는 함수가 포함되어 있습니다. 외부 파일의 모든 SQL 명령을 실행하는 데 사용할 수 있는 ExecuteScriptsFromFile.

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는 이미 Zookeeper.sql에 포함되어 있습니다. 파일. 위의 코드는 파일이 로드될 때 이를 실행합니다.

전체 코드:

executeScriptsFromFile 함수와 테이블 루핑 코드를 결합하면 전체 Python 코드를 단순화할 수 있습니다. 다음과 같습니다:

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿