SQLalchemyで出来ないことは、SQL文を直接書いて処理

2024年6月18日

はい、SQLAlchemyでは直接SQL文を書いて実行することができます。以下は、SQLAlchemyを使用して直接SQL文を実行する基本的な例です。

python
from sqlalchemy import create_engine, text

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

# SQL文を直接実行
sql = text("SELECT * FROM users WHERE name=:name")
result = engine.execute(sql, {'name': 'John'})

# 結果を取得
for row in result:
    print(row)

この例では、text() 関数を使用してSQL文を生成し、engine.execute() メソッドを使ってそのSQL文をデータベースに対して直接実行しています。text() 関数を使うことで、SQLAlchemyはそのSQL文に対するプレースホルダーの扱いなどを適切に行います。

この機能を使用することで、より複雑なクエリやデータベースエンジン固有の機能を利用することができます。ただし、SQL文を直接書く際は、インジェクション攻撃などに注意する必要があります。プレースホルダーを使用してパラメータをセキュアに渡すように心がけましょう。

未分類

Posted by ぼっち