PythonでSQL文を直接書いてSQLAlchemyを使用する

2024年6月18日

PythonでSQL文を直接書いてSQLAlchemyを使用する場合、以下は基本的な例です。この例ではSQLiteデータベースを使用していますが、データベースエンジンを変更することもできます。

python
from sqlalchemy import create_engine

# データベースに接続
engine = create_engine('sqlite:///example.db')

# SQL文を直接書く
sql_query = """
    SELECT users.id, users.name, addresses.email
    FROM users
    JOIN addresses ON users.id = addresses.user_id
    WHERE users.name = :name
"""

# パラメータを指定
params = {'name': 'John'}

# SQL文を実行して結果を取得
result = engine.execute(sql_query, params)

# 結果を表示
for row in result:
    print(row)

この例では、複雑なJOINを含むSQL文を sql_query 変数に直接記述し、:name のようなプレースホルダーを使ってパラメータを指定しています。その後、engine.execute() メソッドを使用してSQL文を実行し、結果を取得しています。

このアプローチは、特定のクエリがORMの利点を得られない場合や、高度なデータベースエンジン固有の機能を利用する場合に便利です。ただし、セキュリティに留意し、パラメータのセットアップには十分な注意が必要です。

未分類

Posted by ぼっち