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

PythonでのデータベースDELETE操作の基本と実装方法

データベースから不要なレコードを削除したい場合には、DELETE操作を使用します。DELETE文を実行することで、指定した条件に一致するレコードをテーブルから取り除くことができます。

以下は、EMPLOYEEテーブルからAGE(年齢)が20より大きいすべてのレコードを削除する手順の例です。

サンプルコード

#!/usr/bin/python
import MySQLdb

# データベース接続を開く
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# cursor()メソッドを使用してカーソルオブジェクトを準備
cursor = db.cursor()

# 削除対象のレコードを指定するSQLクエリを準備
sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20)
try:
   # SQLコマンドを実行
   cursor.execute(sql)
   # データベースへの変更をコミット
   db.commit()
except:
   # エラーが発生した場合はロールバック
   db.rollback()

# サーバーとの接続を切断
db.close()

コードの解説

1. データベースへの接続

MySQLdb.connect()メソッドを使い、ホスト名・ユーザー名・パスワード・データベース名を指定して接続を確立します。

2. カーソルオブジェクトの作成

cursor()メソッドでカーソルオブジェクトを作成します。このカーソルを通じてSQL文の実行を行います。

3. DELETE文の実行とコミット

WHERE句で「AGE > 20」という条件を指定し、該当するレコードのみを削除します。execute()でSQLを実行した後、commit()を呼び出すことで変更が確定されます。

4. エラー時のロールバック

例外が発生した場合にはrollback()を実行し、データベースの状態を操作前の状態に戻します。これにより、データの整合性が保たれます。

注意点

DELETE文は一度実行してコミットすると、削除されたデータは基本的に元に戻せません。本番環境で実行する前に、必ずWHERE句の条件が正しいかを確認しましょう。また、実際の開発ではSQLインジェクション対策として、文字列フォーマットではなくプレースホルダ(パラメータ化クエリ)を使用することが推奨されます。

  1. Pythonの「<>」演算子とは?Python 2とPython 3での違いを解説

    Pythonには、2つの値が「等しくない」ことを判定するための比較演算子として、かつて「<>」という記法が存在していました。これは数式における「≠」に相当する演算子で、Python 2.x系で利用できました。同じ動作をする「!=」演算子もありますが、Python 3.xでは「<>」演算子は廃止され、使用するとエラーになる点に注意が必要です。 Python 2.7での使用例 Python 2.7では、「<>」と「!=」のどちらも「等しくない」判定として同じ結果を返します。 >>> a=5 >>> b=7 >>&g

  2. Pythonでファイルを削除する方法をわかりやすく解説

    Pythonでファイルを削除する基本の方法 Pythonでは、標準ライブラリのosモジュールを使うことで、単一のファイルや空のフォルダ(ディレクトリ)を簡単に削除できます。外部ライブラリのインストールは不要で、import osと記述するだけですぐに利用できるのが魅力です。 os.remove() でファイルを削除する たとえば、カレントディレクトリにある my_file.txt というファイルを削除したい場合は、次のように記述します。 >>> import os >>> os.remove(my_file.txt) os.remove() の引数には、削