【MySQL】データの削除(DELETE文)|MySQL Workbenchの操作方法も解説

本記事にはプロモーションが含まれています。

軽くて安いのに大容量!カフェ作業も捗る!プログラミングに最適なPCをお探しなら【おすすめはこちら

データベースやテーブルを削除するDROP文はほとんど使用することはないかもしれませんが、データを削除するDELETE文を使用することはあると思います。

今回はデータを削除するDELETE文について解説していきます。

記事後半では、実際にデータは削除せずにDELETE状態にする【論理削除】についても解説していますので、是非最後まで目を通してくださいね。

文字を読むのはめんどくさい…という方はYouTube動画でも詳しく解説していますので、聞き流してみてくださいね。

▼youtube動画はこちら

YouTube動画

【知識0からMySQL】データの追加・更新・削除

【MySQL】データの追加・更新・削除について、初心者にもわかりやすく解説しています!

DELETE文の書き方

DELETE文での削除

全てのデータの削除

条件の指定が無い場合、テーブル内の全てのデータが削除されます。

MySQL Workbenchの場合

MySQL Workbenchを使用してSQL文を実行する場合、条件の指定なしで実行しようとするとエラーを出して教えてくれます。

MySQL Workbenchのおかげで助かったわ

指定したカラムのデータの削除

idが3番のデータを削除したい場合は、WHERE句の後に id = 3 を記述します。

テーブルの中身の削除

テーブルの中身が多い場合、TRUNCATE文でテーブルの中身を空にします。

DELETEが1行ずつ削除するのに対してTRUNCATEは一気に全データを削除することができます。

AUTO_INCREMENT はリセットされるため、新たに1番からid番号を振ることができます。

データベースやテーブルはDROPで削除

データベースの削除は

テーブルの削除は

DELETE削除した場合のAUTO_INCREMENT

カラムを指定せずに1行分のデータを追加する場合は、全てのカラムの情報を記述しなければなりません。

データが多くなってくるとid番号が何番かいちいち探すのは面倒ですよね。

何番までデータを入れたのかid番号がわからなくなった!

id番号のようにAUTO_INCREMENTの設定をしている場合は、そのカラムの情報はNULLと記述しても大丈夫です。

自動的に番号が追加されます。

データを削除して欠番の場合のAUTO_INCREMENT

例えば下図のように3番のデータを削除し、欠番となったとします。

次にデータを番号を指定せずに追加した場合、そのデータは新たなid番号、下図のように5番に追加されます。

データの整合性を保つため、SQLはこのような仕様になっています。

削除できたかSHOW TABLESで確認

データを復活できるようにする論理削除

DELETE文でデータを削除してしまった場合、そのデータを元に戻すことはできません。

データをDELETE文で物理的に削除するのではなく、削除した体をとる、データ自体は残しておくが使えないようにする、これを【論理削除】といいます。

カラムで状態を管理する

下図のように状態を管理するstatusというカラムを作成し、DELETEという状態にしておきます。

DELETE状態以外のカラムのみ表示するようにしたり、ログインであればDELETE状態のカラムを使用できなくすることで、DELETEと同様の状態にすることができます。

2年以内ならアカウントが復活できる…っていうのはこれだったんだな

DELETE削除の際の注意点!

MySQLで行った作業はその場で保存されていきます。

Ctrl+Zで戻る、ということはできません。

MySQL WorkbenchであればWHERE句を書き忘れた場合、エラーを出して止めてくれます。

慣れるまではMySQL Workbenchで作業して、SQL文をコードに貼り付けるという使い方をしても良いかもしれませんね。

【MySQL】データの削除(DELETE文)まとめ

今回はデータの削除DELETE文を解説しました。

練習で色々データを入れたり消したりしていると、id番号がどんどん増えていってしまいますね(汗

そんな時は一旦TRUNCATE TABLE 文でテーブルを空にすることもできますよ!

タイトルとURLをコピーしました