MySQLのDELETEでデータ削除時に多用する4パターン

MySQLのDELETEでデータ削除時に多用する4パターン

 

★悩み★
・MySQLに格納したデータ(レコード)を削除はできる?
・DELETEの末尾に指定するWHERE/ORDER/LIMITって何?
・DELETEを使ってMySQLのデータ削除する際に気を付けることってある?



こういった「悩み」に答えます。
 

★本記事の内容★
➀ MySQLのDELETEとは?
➁ DELETEを使ってMySQLのデータを削除する方法
➂ DELETEをMySQLで使う上での注意点



これからご紹介する「MySQLのDELETEでデータ削除時に多用する4パターン」を実践したことで、筆者は15分以内でDELETEを用いてMySQLに格納されたデータ(レコード)を削除できました。
 

記事の前半では「そもそもMySQLのDELETEとは?」を紹介します。

記事の後半では「MySQLのデータ削除する際によく使うDELETEの使い方(構文や事例)」を紹介します。
 

この記事を読み終えることで、「DELETEを使いMySQLに格納されたデータ(レコード)を削除できる」状態になります。
 

★MySQLとは★
MySQLは、Oracle社が開発しているオープンソースのデータベース管理システムです。MySQLは、YoutubeやWikipediaなどの大規模なサービスに利用されています。

参照:MySQLとは(MySQLの公式サイト)


 

ちなみに、「MySQLに格納したデータ(レコード)を更新する方法」を知りたい方は、以下の記事をご覧ください。
 


 

【PR】この記事には広告を含む場合があります

MySQLのDELETEとは?

MySQLのDELETEとは?


「MySQLのDELETEとは?」に関してご紹介します。
 

★MySQLのDELETE関連の情報★
・DELETEとは?(MySQL内のデータ削除するためのコマンド)
・MySQLで使うDELETEの基本的な構文



以降で、上記「MySQLのDELETE関連の情報」の各項目に関してご説明します。
 

DELETEとは?(MySQL内のデータ削除するためのコマンド)

「DELETEとは?(MySQL内のデータ削除するためのコマンド)」に関して解説します。
 

MySQLでよく使うコマンドの1つとして、「DELETE」があります。



MySQLで「DELETE」を使うことで、以下のデータ削除を実現できます。
 

★MySQLでDELETEを使い実現できること★
・MySQLの指定テーブルに格納された全データを削除
・テーブルから任意件数のデータを削除
・条件に一致するデータをテーブルから削除
・複数条件に一致するデータをテーブルから削除
・上位と下位のデータを削除



上記のように「MySQLのデータ(レコード)を削除したい」という場合は、「DELETE」を使います。
 

以上が、「DELETEとは?(MySQL内のデータ削除するためのコマンド)」となります。
 

MySQLで使うDELETEの基本的な構文

「MySQLで使うDELETEの基本的な構文」に関して解説します。
 

MySQLにおける「DELETE」の基本的な書き方に関して説明しますね。 



MySQLでデータ削除をする際に利用する「DELETE」の構文は、以下となります。
 

★MySQLにおけるDELETEのリファレンス★
・機能
 指定したテーブル内のデータを削除する
・使い方
 DELETE FROM テーブル名 条件などのオプション;
・例
 DELETE FROM user;
・実行結果
 userテーブルに格納された全データを削除する
・参照
 DELETEのリファレンス(MySQL公式サイト)



WHERE条件などのオプションを指定したDELETEに関しては、本記事の後半で解説します。
 

以上が、「MySQLで使うDELETEの基本的な構文」となります。
 

MySQLのテーブル内のデータ(レコード)を削除したい場合、「DELETE」を使いましょう。


 

DELETEを使ってMySQLのデータを削除する方法

DELETEを使ってMySQLのデータを削除する方法


「DELETEを使ってMySQLのデータを削除する方法」に関してご紹介します。
 

★MySQLでのDELETEの使い方:データ削除時に多用する4パターン★
・全データを削除
・削除するデータの数を指定(LIMIT)
・並び順(降順/昇順)を指定して削除(ORDER BY)
・条件に一致するデータのみを削除(WHERE)



MySQLのデータを削除する場合、上記4パターンのDELETEを多用します。
 

上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2022年6月14日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)



以降で、上記「MySQLでのDELETEの使い方:データ削除時に多用する4パターン」の各項目に関してご説明します。
 

以降では、MySQL内にデータ格納された前提で、各DELETEのパターンをご紹介します。
MySQLのインストール/セットアップ/データ追加をされていない方には、以下の記事がオススメです。

>> MySQLのインストール/セットアップ/データ追加する手順


 

全データを削除

「全データを削除」に関して解説します。
 

DELETEを使えば、MySQLの指定したテーブルに格納された全てのレコード(データ)を削除できます。



MySQLの指定テーブル内のデータを全て削除したい場合のDELETEの構文は、以下となります。
 

★DELETEの構文:全データを削除したい場合★
・使い方
 DELETE FROM テーブル名;
・例
 DELETE FROM user;
・実行結果
 userテーブルに格納された全データを削除する



それでは、MySQLの指定テーブルに格納された全データを削除するために、以下のDELETEを実行してみましょう。
 

mysql> select * from user;
+------+------+---------+
| id   | name | address |
+------+------+---------+
|    2 | tom  | america |
|    3 | bob  | america |
|    4 | ken  | japan   |
+------+------+---------+
3 rows in set (0.00 sec)

mysql> DELETE FROM user;
Query OK, 3 rows affected (0.00 sec)

mysql> select * from user;
Empty set (0.01 sec)

mysql> 



コマンド実行後、「Empty set」が表示された場合、「正常にDELETEで全データ(レコード)を削除できた」と判断できます。
 

以上が、「全データを削除」となります。
 

削除するデータの数を指定(LIMIT)

「削除するデータの数を指定(LIMIT)」に関して解説します。
 

DELETEとLIMITを使えば、MySQLで削除するデータの数を指定できます。



MySQLで「件数を指定したデータ削除」をしたい場合のDELETEの構文は、以下となります。
 

★DELETEの構文:データの件数を指定したデータ削除の場合★
・使い方
 DELETE FROM テーブル名 LIMIT 件数;
・例
 DELETE FROM user LIMIT 2;
・実行結果
 userテーブルに格納された2件のデータを削除する



それでは、件数を指定したデータ削除をするために、以下のDELETEを実行してみましょう。
 

mysql> select * from user;
+------+------+-----------+
| id   | name | address   |
+------+------+-----------+
|    1 | hero | kakedashi |
|    3 | bob  | america   |
|    4 | ken  | japan     |
+------+------+-----------+
3 rows in set (0.00 sec)
mysql> DELETE FROM user LIMIT 2;
Query OK, 2 rows affected (0.00 sec)

mysql> select * from user;
+------+------+---------+
| id   | name | address |
+------+------+---------+
|    4 | ken  | japan   |
+------+------+---------+
1 row in set (0.00 sec)

mysql>



コマンド実行後、「データの件数が2件」減っていた場合、正常に「指定した数だけのデータを削除できた」と判断できます。
 

以上が、「削除するデータの数を指定(LIMIT)」となります。
 

並び順(降順/昇順)を指定して削除(ORDER BY)

「並び順(降順/昇順)を指定して削除(ORDER BY)」に関して解説します。
 

DELETEとORDERを使えば、MySQLで並び順を指定した削除を実現できます。



MySQLで「並び順を指定したデータ削除」をしたい場合のDELETEの構文は、以下となります。
 

★DELETEの構文:並び順を指定したデータ削除をしたい場合★
・使い方
 DELETE FROM テーブル名 ORDER BY カラム名 ASC/DESC;
・例
 DELETE FROM user ORDER BY id ASC;
・実行結果
 idカラムを昇順に並び替えてからデータを削除する



それでは、並び順を指定してデータを削除するために、以下のDELETEを実行してみましょう。
 

↓↓ 昇順に並び替えた上でDELETE ↓↓
mysql> select * from user;
+------+------+---------+
| id   | name | address |
+------+------+---------+
|    1 | hero | japan   |
|    2 | bob  | america |
|    3 | tom  | america |
|    4 | ken  | japan   |
+------+------+---------+
4 rows in set (0.00 sec)

mysql> DELETE FROM user ORDER BY id ASC LIMIT 2;
Query OK, 2 rows affected (0.00 sec)

mysql> select * from user;
+------+------+---------+
| id   | name | address |
+------+------+---------+
|    3 | tom  | america |
|    4 | ken  | japan   |
+------+------+---------+
2 rows in set (0.00 sec)

mysql>


↓↓ 降順に並び替えた上でDELETE ↓↓
mysql> select * from user;
+------+------+---------+
| id   | name | address |
+------+------+---------+
|    1 | hero | japan   |
|    2 | bob  | america |
|    3 | tom  | america |
|    4 | ken  | japan   |
+------+------+---------+
4 rows in set (0.00 sec)

mysql> DELETE FROM user ORDER By id DESC LIMIT 2;
Query OK, 2 rows affected (0.00 sec)

mysql> select * from user;
+------+------+---------+
| id   | name | address |
+------+------+---------+
|    1 | hero | japan   |
|    2 | bob  | america |
+------+------+---------+
2 rows in set (0.00 sec)

mysql>



コマンド実行後、「昇順/降順で並び替えした上で先頭のデータが2件」減っていた場合、正常に「並び替えをした上でデータを削除できた」と判断できます。
 

以上が、「並び順(降順/昇順)を指定して削除(ORDER BY)」となります。
 

条件に一致するデータのみを削除(WHERE)

「条件に一致するデータのみを削除(WHERE)」に関して解説します。
 

DELETEを使えば、条件を満たすMySQLのレコードを削除できます。



MySQLで「条件に一致するデータのみを削除」したい場合のDELETEの構文は、以下となります。
 

★DELETEの構文:条件に一致するデータのみを削除したい場合★
・使い方
 DELETE FROM テーブル名 WHERE 条件;
・例
 DELETE FROM user WHERE name = ‘hero’;
・実行結果
 userテーブル内のname列がheroであるデータを削除する



それでは、MySQLで条件に一致するデータのみを削除するために、以下のDELETEを実行してみましょう。
 

mysql> select * from user;
+------+------+-----------+
| id   | name | address   |
+------+------+-----------+
|    1 | hero | kakedashi |
|    2 | tom  | america   |
|    3 | bob  | america   |
|    4 | ken  | japan     |
+------+------+-----------+
4 rows in set (0.00 sec)

mysql> DELETE FROM user WHERE name  = 'hero';
Query OK, 1 row affected (0.00 sec)

mysql> select * from user;
+------+------+---------+
| id   | name | address |
+------+------+---------+
|    2 | tom  | america |
|    3 | bob  | america |
|    4 | ken  | japan   |
+------+------+---------+
3 rows in set (0.00 sec)

mysql> 



コマンド実行後、「| 1 | hero | kakedashi |」が表示されていない場合、正常に「条件に一致するレコードを削除できた」と判断できます。
 

以上が、「条件に一致するデータのみを削除(WHERE)」となります。
 

以上が、MySQLのデータ削除時に多用するDELETEの4パターンとなります。


 

DELETEをMySQLで使う上での注意点

DELETEをMySQLで使う上での注意点


「DELETEをMySQLで使う上での注意点」に関してご紹介します。
 

DELETEを使うと、MySQLの指定したレコードを削除できます。その際に注意するべき点を解説しますね。



DELETEを使って、MySQLの指定テーブル内のレコードを削除したい場合、以下のことを注意しましょう。
 

★MySQLでDELETEを使う場合の注意点★
・テーブル内のデータは削除できるが、スキーマー構造は残存する
・大量データを全削除する場合、時間がかかる(TRUNCATEを使うこと)
・WHEREなどの条件の付け忘れに注意すること(全データ削除される)



以上が、「DELETEをMySQLで使う上での注意点」となります。
 

DELETEを実行することで、MySQL内のレコードを削除できます。
ただし、誤ったDELETEを実行すると取り返しが利かなくなるので注意して使いましょう。



ちなみに、「MySQLを基礎から体系的に学びたい」や「その他のMySQLのコマンドを知りたい」方は、以下の参考書がオススメです。



MySQLを動画で学びたい方には、以下をオススメします。

MySQL入門@udemy


 

【まとめ】MySQLのDELETEでデータ削除時に多用する4パターン

【まとめ】MySQLのDELETEでデータ削除時に多用する4パターン


今回の記事を通して、「MySQLのDELETEでデータ削除時に多用する4パターン」をご紹介することで、以下の悩みを解消しました。
 

★悩み★
・MySQLに格納したデータ(レコード)を削除はできる?
・DELETEの末尾に指定するWHERE/ORDER/LIMITって何?
・DELETEを使ってMySQLのデータ削除する際に気を付けることってある?



MySQLのDELETEとは?」や「MySQLでよく使うDELETEの使い方は?」で悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。

コメント

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