Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ DBへの更新 | SQLAlchemy
/
Pythonでのデータベース操作
セクション 4.  7
single

single

bookDBへの更新

メニューを表示するにはスワイプしてください

この章では、SQLAlchemy を使用してデータベース内のレコードを更新する方法について説明します。レコードの更新は、テーブル内の既存データ(説明やその他のフィールドなど)を変更する際に重要です。SQLAlchemy は、効率的かつ簡単に更新を行うための方法を提供しています。

単一レコードの更新

最も一般的な更新操作は、単一レコードの修正です。これを行うには、オブジェクトを取得し、その属性を更新してから変更を保存します。

product = session.query(Product).filter(Product.id == 1).first()

if product:
    product.description = "Updated description for high-end gaming laptop"
    session.commit()

ID で製品を取得するには、目的の ID を指定したフィルター付きクエリを使用します。product の description を更新した後、session.commit() を呼び出すことで、変更内容がデータベースに保存されます。

複数レコードの更新

場合によっては、複数のレコードを一度に更新する必要があります。SQLAlchemy では、filter()update() メソッドを組み合わせて効率的にレコードを修正できます。

session.query(Product).filter(Product.price > 1000).update(
    {Product.description: "Updated description for premium products"}, 
    synchronize_session="fetch"
)
session.commit()

$1000 を超える価格の製品をフィルタリングするには、価格に条件を指定したクエリを使用します。update メソッドは、該当するすべてのレコードに変更を適用し、synchronize_session="fetch" 引数によって、更新後もセッションが同期された状態に保たれます。

バルク更新

大規模な変更には、バルク更新がより効率的です。これは、オブジェクトをメモリに読み込まずにデータベースレコードを直接修正するため、多数の行を一度に更新するのに最適です。

session.query(Product).filter(Product.price < 500).update(
    {Product.description: "Generic description for affordable products"}, 
    synchronize_session="fetch"
)
session.commit()

このコードは、$500 未満の価格のすべての製品のdescriptionを一度に効率的に更新します。バルク更新は、個別にレコードを更新する場合と比べて高速でメモリ消費も抑えられます

タスク

スワイプしてコーディングを開始

  1. データベースから__すべての製品__を取得します。
  2. 各製品の価格を20%減額して__新しい価格を計算__します。
  3. __更新された価格__をデータベースに保存します。

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  7
single

single

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

some-alt