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() を呼び出さない限り、削除などの変更は実際にはデータベースに反映されません。忘れずに実行するようにしましょう。
-
PythonでMySQLのテーブルから全データを取得する方法を解説
MySQLのテーブルは、行(レコード)と列(フィールド)で構成されています。列はデータの項目(フィールド)を定義し、行は実際のデータレコードを表します。テーブルに格納されたデータは、利用するために取得する必要があります。場合によっては、テーブルからすべてのデータを一度に取得したいこともあるでしょう。テーブルからすべての行を取得するには、SELECT * ステートメントを使用します。基本構文SELECT * FROM テーブル名上記の構文における「*」は、テーブルからすべての行を取得することを意味しています。PythonでMySQLを使ってテーブルの全データを取得する手順MySQLコネクタをイン
-
Pythonで文字列から文字を削除する方法|スライス・replace・正規表現の使い分け
Pythonで文字列から特定の文字を削除したい場面はよくあります。目的に応じていくつかの方法があるため、それぞれの特徴と使い方を解説します。 特定のインデックスの文字を削除する(スライス) 文字列の中から指定した位置(インデックス)の1文字だけを削除したい場合は、文字列スライスを使うのが最もシンプルです。削除したい位置の前後をつなぎ合わせることで、その文字だけを取り除いた新しい文字列を作成できます。 >>> s = Hello World >>> s[:4] + s[5:] Hell World この例では、インデックス4にある「o」を除外し、それ以外の部