Sqlalchemy-orm-using-query
SQLAlchemy ORM-クエリの使用
SQLAlchemy ORMによって生成されたすべてのSELECTステートメントは、Queryオブジェクトによって構築されます。 それは生成インターフェースを提供します。したがって、連続した呼び出しは、新しいQueryオブジェクト、それに関連付けられた追加の基準とオプションを持つ前者のコピーを返します。
クエリオブジェクトは、最初に次のようにセッションのquery()メソッドを使用して生成されます-
次の文も上記の文と同等です-
クエリオブジェクトには、オブジェクトのリストの形式で結果セットを返すall()メソッドがあります。 顧客テーブルで実行する場合-
このステートメントは、次のSQL式と実質的に同等です-
結果オブジェクトは、以下のForループを使用してトラバースし、基礎となる顧客テーブルのすべてのレコードを取得できます。 これは、Customersテーブルのすべてのレコードを表示する完全なコードです-
Pythonコンソールには、以下のようにレコードのリストが表示されます-
Queryオブジェクトには、次の便利なメソッドもあります-
Sr.No. | Method & Description |
---|---|
1 |
add_columns() 返される結果列のリストに1つ以上の列式を追加します。 |
2 |
add_entity() 返される結果列のリストにマッピングされたエンティティを追加します。 |
3 |
count() このクエリが返す行数を返します。 |
4 |
delete() 一括削除クエリを実行します。 このクエリと一致した行をデータベースから削除します。 |
5 |
distinct() DISTINCT句をクエリに適用し、新しく生成されたクエリを返します。 |
6 |
filter() SQL式を使用して、指定されたフィルタリング基準をこのクエリのコピーに適用します。 |
7 |
first() このクエリの最初の結果を返します。結果に行が含まれていない場合はNoneを返します。 |
8 |
get() 指定された主キー識別子に基づいてインスタンスを返し、所有するセッションのIDマップへの直接アクセスを提供します。 |
9 |
group_by() 1つ以上のGROUP BY基準をクエリに適用し、新しく生成されたクエリを返します |
10 |
join() このQueryオブジェクトの基準に対してSQL JOINを作成し、生成的に適用して、新しく生成されたQueryを返します。 |
11 |
one() 正確に1つの結果を返すか、例外を発生させます。 |
12 |
order_by() クエリに1つ以上のORDER BY基準を適用し、新しく生成されたクエリを返します。 |
13 |
update() 一括更新クエリを実行し、データベース内のこのクエリに一致する行を更新します。 |