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インジェクション対策として、文字列フォーマットではなくプレースホルダ(パラメータ化クエリ)を使用することが推奨されます。
-
Pythonの「<>」演算子とは?Python 2とPython 3での違いを解説
Pythonには、2つの値が「等しくない」ことを判定するための比較演算子として、かつて「<>」という記法が存在していました。これは数式における「≠」に相当する演算子で、Python 2.x系で利用できました。同じ動作をする「!=」演算子もありますが、Python 3.xでは「<>」演算子は廃止され、使用するとエラーになる点に注意が必要です。 Python 2.7での使用例 Python 2.7では、「<>」と「!=」のどちらも「等しくない」判定として同じ結果を返します。 >>> a=5 >>> b=7 >>&g
-
Pythonでファイルを削除する方法をわかりやすく解説
Pythonでファイルを削除する基本の方法 Pythonでは、標準ライブラリのosモジュールを使うことで、単一のファイルや空のフォルダ(ディレクトリ)を簡単に削除できます。外部ライブラリのインストールは不要で、import osと記述するだけですぐに利用できるのが魅力です。 os.remove() でファイルを削除する たとえば、カレントディレクトリにある my_file.txt というファイルを削除したい場合は、次のように記述します。 >>> import os >>> os.remove(my_file.txt) os.remove() の引数には、削