Skip to content

SQLAlchemyの知識

  • select
  • stmt = select(SeriesModel) # SELECT * FROM series
  • result = db.execute(stmt) # 実行
  • rows = result.scalars().all() # ORM オブジェクトのリストとして取得

  • 単一レコードの取得

    • 1件のみ取得
    • result = db.execute(stmt).one() # 1件を想定。0件 or 複数件なら例外が返ってくる
    • result = db.execute(stmt).one_or_none() # 1件を想定。0件ならNone。 複数件なら例外が返ってくる
    • 複数レコードの取得
    • result = db.execute(stmt).all() # 複数件 「0件はどうなる?」
  • where

  • 等価比較
    • stmt = select(SeriesModel).where(SeriesModel.category == "steel")
  • 複数条件 (AND)

    python stmt = select(SeriesModel).where( SeriesModel.category == "steel", SeriesModel.tier == "A1", )