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

PythonとMySQLでテーブルからレコードを削除する方法を徹底解説

データベースを運用していると、テーブルから特定の行(レコード)を削除する必要が生じることがあります。例えば、クラスの生徒情報を管理するテーブルがあるとしましょう。ある生徒がクラスを退会した場合、その生徒の情報はもう不要になるため、該当する行をテーブルから削除する必要があります。

MySQLでは「DELETE FROM」ステートメントを使用して、テーブルから行やレコードを削除します。「WHERE」句を使うことで、削除対象の行を指定できます。なお、WHERE句を指定しない場合は、テーブル内のすべてのレコードが削除されてしまうため注意が必要です。

構文

すべての行を削除する場合

DELETE FROM table_name

特定の行だけを削除する場合

DELETE FROM table_name WHERE condition

PythonでMySQLを使ってレコードを削除する手順

  • mysql.connector をインポートする

  • connect() メソッドを使ってデータベースとの接続を確立する

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

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

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

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

  • 接続を閉じる

ここでは、次のような「Students」テーブルがあるものとします −

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

実装例

上記の生徒テーブルから、「Kriti」のレコードを削除したい場合のコード例です。

import mysql.connector

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

cursor=db.cursor()

query="DELETE FROM Students WHERE Name='Kriti'"
cursor.execute(query)
db.commit()
query="SELECT * FROM Students"
cursor.execute(query)
for row in cursor:
    print(row)
db.close()

上記のコードは、テーブルから該当する1行を削除し、その後残りの行をすべて出力します。

出力結果

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

注意点

上記コード内の db.commit() は非常に重要です。このメソッドは、テーブルに対して行った変更を確定するために使用されます。commit() を呼び出さない限り、削除などの変更は実際にはデータベースに反映されません。忘れずに実行するようにしましょう。

  1. PythonでMySQLのテーブルから全データを取得する方法を解説

    MySQLのテーブルは、行(レコード)と列(フィールド)で構成されています。列はデータの項目(フィールド)を定義し、行は実際のデータレコードを表します。テーブルに格納されたデータは、利用するために取得する必要があります。場合によっては、テーブルからすべてのデータを一度に取得したいこともあるでしょう。テーブルからすべての行を取得するには、SELECT * ステートメントを使用します。基本構文SELECT * FROM テーブル名上記の構文における「*」は、テーブルからすべての行を取得することを意味しています。PythonでMySQLを使ってテーブルの全データを取得する手順MySQLコネクタをイン

  2. Pythonで文字列から文字を削除する方法|スライス・replace・正規表現の使い分け

    Pythonで文字列から特定の文字を削除したい場面はよくあります。目的に応じていくつかの方法があるため、それぞれの特徴と使い方を解説します。 特定のインデックスの文字を削除する(スライス) 文字列の中から指定した位置(インデックス)の1文字だけを削除したい場合は、文字列スライスを使うのが最もシンプルです。削除したい位置の前後をつなぎ合わせることで、その文字だけを取り除いた新しい文字列を作成できます。 >>> s = Hello World >>> s[:4] + s[5:] Hell World この例では、インデックス4にある「o」を除外し、それ以外の部