SELECT結果⇒クラス定義した任意Objectのリストとして受け取る。
query() でSELECT結果にあてはまるObjectクラスを指定、from_statement で、
SQLステートメントを渡してall() で結果を受け取る。
session.query(Objectクラス).from_statement(text(完成したSQL文)).all()
パラメータを渡す時、、
sql = "SELECT * FROM itemwork WHERE user_name = :userName" session.query(Item).from_statement(text(sql).params(userName='A')).all()
Objectクラスで定義しないで、値を受け取る方法は、、
execute(text(完成したSQL文)).all を実行する。
SELECT結果⇒(値,,,)tuple のリストとして受け取る。
sql = "SELECT * FROM itemwork WHERE user_name = :userName" session.execute(text(sql).params(userName='B')).all()
SELECT結果⇒key=列名、value の辞書型(dict) と同様の型
sqlalchemy.engine.RowMapping のリストとして受け取る。
mappings().all() とすることで、辞書型で結果を取得する。
sql = "SELECT * FROM itemwork WHERE user_name = :userName" session.execute(text(sql).params(userName='B')).mappings().all()