Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonとMySQL Connectorでテーブル内の特定の値を更新する方法を解説

テーブル内のデータは時間の経過とともに古くなり、後から修正が必要になることがあります。たとえば、学生情報を管理するテーブルがあり、ある学生が引っ越したために住所が変わったとしましょう。この場合、誤ったデータが原因で将来トラブルが発生しないよう、データベース側の情報も忘れずに更新しておく必要があります。

MySQLでは「UPDATE」ステートメントを使ってテーブル内の値を更新します。SET句で列に設定する新しい値を指定し、WHERE句でテーブル内のどの行を更新対象とするかを特定します。

基本構文

UPDATE table_name SET column=new_value WHERE column=old_value

PythonでMySQLのテーブルデータを更新する手順

  • MySQLコネクタをインポートする

  • connect()メソッドでデータベースへの接続を確立する

  • cursor()メソッドでカーソルオブジェクトを作成する

  • 適切なMySQLステートメントでクエリを作成する

  • execute()メソッドでSQLクエリを実行する

  • commit()メソッドで変更を確定(コミット)する

  • 接続を閉じる

ここでは、次のような「Student」というテーブルを例に説明します。

+----------+---------+-----------+------------+
|    Name  | Class   |    City   |    Marks   |
+----------+---------+-----------+------------+
|    Karan |    4    | Amritsar  |    95      |
|    Sahil |    6    | Amritsar  |    93      |
|    Kriti |    3    | Batala    |    88      |
|   Khushi |    9    | Delhi     |    90      |
|    Kirat |    5    | Delhi     |    85      |
+----------+---------+-----------+------------+

サンプルコード

上記のStudentテーブルに対して、Kritiの在住都市を「Batala」から「Kolkata」へ更新してみましょう。

import mysql.connector
db=mysql.connector.connect(host="your host", user="your username", password="your password", database="database_name")

cursor=db.cursor()

query="UPDATE Students SET City='Kolkata' WHERE Name='Kriti'"
cursor.execute(query)
db.commit()

query="SELECT * FROM Students"
cursor.execute(query)

for row in cursor:
    print(row)
db.close()

このコードを実行すると、Kritiの都市名が更新されます。

実行結果

('Karan', 4, 'Amritsar', 95)
('Sahil', 6, 'Amritsar', 93)
('Kriti', 3, 'Kolkata', 88)
('Khushi', 9, 'Delhi', 90)
('Kirat', 5, 'Delhi', 85)

注意点:commit()を忘れないこと

上記のコードにおけるdb.commit()は非常に重要です。これはテーブルへの変更を確定するための処理です。commit()を呼び出さないままプログラムを終了すると、変更内容はデータベースに反映されず、元のデータのまま残ってしまいます。UPDATEやINSERTなどデータを書き換える操作を行った場合は、必ずcommit()を実行するようにしましょう。

  1. PythonとMySQLで条件に合うデータを抽出する方法:WHERE句の使い方を徹底解説

    テーブルからすべてのデータを取得する必要があるケースは、実はそれほど多くありません。むしろ、何らかの条件や基準に基づいて、特定のデータや行だけを取り出したいという場面の方が多いでしょう。例えば、多くの生徒の名前と点数が登録されたテーブルがあるとします。ここから「点数が90以上の生徒の名前だけを取得したい」という場合、(点数>=90)という条件に基づいてデータを選択する必要があります。このような条件付きのデータ抽出を実現するために、MySQLでは「WHERE」句が用意されています。WHERE句を使えば、指定した条件を満たすデータだけをテーブルから選択できます。基本構文SELECT * FR

  2. Pythonで辞書の値を更新する方法|update()メソッドの使い方を解説

    Pythonの組み込み型である辞書(dict)クラスには、update()メソッドが標準で用意されています。このメソッドは、別の辞書オブジェクトを引数として受け取り、呼び出し元の辞書にマージ(統合)することができます。 基本構文 D1.update(D2) 動作の仕組み D2の内容がD1に統合されます。このとき、キーの有無によって以下のように挙動が変わります。 D2のキーがD1にすでに存在する場合:そのキーの値がD2の値で上書き(更新)されます。 D2のキーがD1に存在しない場合:新しいキーと値のペアとしてD1に追加されます。 実行後、D1は更新された内容を保持します。 使用例 >&