Sqlalchemy-core-using-textual-sql
提供:Dev Guides
SQLAlchemyコア-テキストSQLの使用
SQLAlchemyでは、文字列を使用できます。これは、SQLが既知であり、動的な機能をサポートするステートメントの必要性が低い場合に使用します。 text()コンストラクトは、ほとんど変更されずにデータベースに渡されるテキストステートメントを作成するために使用されます。
以下のコードに示すように、テキストのSQL文字列を直接表す新しい TextClause を構築します-
プレーン文字列よりも* text()*が提供する利点は-
- バインドパラメータのバックエンドニュートラルサポート
- ステートメントごとの実行オプション *結果列のタイピング動作
text()関数には、名前付きコロン形式のBoundパラメーターが必要です。 データベースバックエンドに関係なく一貫しています。 パラメーターの値を送信するには、追加の引数としてそれらをexecute()メソッドに渡します。
次の例では、テキストSQLでバインドされたパラメータを使用します-
text()関数は次のようにSQL式を構築します-
x = 'A’およびy = 'L’の値がパラメーターとして渡されます。 結果は、「A」と「L」の間の名前を持つ行のリストです-
text()コンストラクトは、TextClause.bindparams()メソッドを使用して事前に確立されたバインド値をサポートします。 パラメータは、次のように明示的に入力することもできます-
また、* and _()*関数を使用して、text()関数を使用して作成されたWHERE句で複数の条件を組み合わせることができます。
上記のコードは、IDが2より大きい「A」と「L」の間の名前を持つ行をフェッチします。 コードの出力は以下のとおりです-