[파이썬] argparse와 SQL 쿼리 통합

소개

이번 블로그 포스트에서는 Python의 argparse 모듈과 SQL 쿼리를 통합하는 방법에 대해 알아보겠습니다. argparse는 명령행 인자를 처리하는데 사용되는 강력한 라이브러리이며, SQL 쿼리는 데이터베이스와 상호 작용하는 데 사용되는 중요한 도구입니다.

Python에서 SQL 쿼리를 실행하려면 일반적으로 문자열로 쿼리를 작성하고, 이를 데이터베이스 연결에 전달하여 실행합니다. 그러나 매번 쿼리를 작성하고 수동으로 실행하는 것은 번거로울 수 있으며, 실수를 발생시킬 수도 있습니다. 이러한 문제를 해결하기 위해 argparse를 사용하여 사용자로부터 쿼리를 입력 받고, 이를 자동으로 실행하는 기능을 구현할 수 있습니다.

설치

argparse는 Python 표준 라이브러리에 포함되어 있으므로 별도로 설치할 필요가 없습니다. 하지만, SQL 쿼리를 실행하기 위해 데이터베이스 연결을 위해 pymysql 라이브러리를 설치해야 합니다. 다음 명령을 사용하여 pymysql를 설치합니다:

pip install pymysql

예제 코드

가장 먼저 argparse 모듈을 import합니다:

import argparse

다음으로, argparse 인스턴스를 생성하고 필요한 인자를 추가합니다. 아래의 예제에서는 -q 또는 --query 인자를 사용하여 SQL 쿼리를 전달받습니다:

parser = argparse.ArgumentParser(description='Execute SQL queries')
parser.add_argument('-q', '--query', type=str, help='SQL query')

--query 옵션에 대한 인자의 유형을 str으로 정의하였습니다.

이제 입력된 인자를 분석하고, 해당 쿼리를 실행하는 코드를 작성할 차례입니다. 아래의 예제는 MySQL 데이터베이스에 연결하여 입력된 쿼리를 실행하는 방법을 보여줍니다:

import pymysql

# 데이터베이스 연결 설정
db = pymysql.connect(host='localhost', user='username', password='password', database='dbname')

# 커서 생성
cursor = db.cursor()

# 입력된 쿼리 실행
cursor.execute(args.query)

# 결과 출력
for row in cursor:
    print(row)

# 연결 종료
db.close()

위의 코드에서 host, user, password, database는 실제 데이터베이스 연결 설정에 맞게 수정해야 합니다.

실행 예제

위에서 작성한 코드를 실행하기 위해서는 셸에서 다음과 같이 명령을 입력합니다:

python myscript.py -q "SELECT * FROM table_name"

여기에서 myscript.py는 Python 스크립트의 파일명이며, -q 옵션으로 실행할 SQL 쿼리를 전달합니다.

결론

이번 글에서는 argparse 모듈과 SQL 쿼리를 통합하여 Python 스크립트에서 사용자가 입력한 쿼리를 실행하는 방법에 대해 살펴보았습니다. argparse를 사용하면 명령행에서 인자를 전달받는 것이 간편해지며, 이를 활용하여 SQL 쿼리 실행에 대한 유연성과 편의성을 높일 수 있습니다. 이러한 기술은 데이터베이스와 상호 작용하는 Python 애플리케이션을 개발하는 데 도움이 될 것입니다.

더 많은 정보와 예제 코드는 Python argparse 문서pymysql 문서를 참조하시기 바랍니다.