phpMyAdmin を使用して MySQL データベースのすべての行を削除する
phpMyAdmin
を使用して、MySQL
データベースのすべての行を削除する最良の方法を学習します。DELETE
コマンドを使用して、特定のテーブルから行を削除します。
また、DELETE
、DROP
、および TRUNCATE
コマンドの違いについても学習します。テーブルに外部キーが関連付けられている場合、MySQL
の行を DELETE
する方法を説明します。
MySQL バージョン 8.0.27 を使用しており、最新のものはこちらからダウンロードできます。
phpMyAdmin
を使用して MySQL
データベースの行を削除する
phpMyAdmin
では、2つの方法で行を削除することができます。これは、グラフィカルユーザーインターフェイス(GUI)オプションと SQL クエリを使用して実行できます。
以下でそれぞれを理解しましょう。
SQL
クエリなしで phpMyAdmin
の行を削除
1つのテーブルからすべての行を一度に削除する必要があるシナリオがいくつかあります。Check all
をクリックし、Delete
を押してこれを行います。
選択したテーブルから 1 行だけを削除
したい場合は、削除
ボタンをクリックしてその特定の行を削除します。次の画像を参照してください。
すべてではなく 1つ以上の行を削除する場合は、最初にそれらをチェックしてから、Delete
を押すことができます。次のスクリーンショットを見ると、指示に従うことができます。
別のテーブルから行を削除する場合は、上記のように各テーブルに移動してから削除する必要があります。時間と労力がかかります。
ここで、SQL クエリが機能し、作業が非常に簡単になります。
SQL
クエリを使用して phpMyAdmin
の行を削除する
プロジェクトの要件に従って、3つの異なる方法を使用して目標を達成できます。それらを一つ一つ理解して使っていきましょう。
phpMyAdmin
を使用しているときに、SQL
クエリをどこに書き込むかを考えているかもしれません。SQL
クエリは、SQL
タブの phpMyAdmin
に記述できます(以下のスクリーンショットを参照)。
右下隅にある Go
ボタンを押すか、Ctrl+Enterキーを押してクエリを実行します。
DROP
DROP
は Data Definition Language
コマンド(DDL)の 1つです。
このコマンドは、テーブル全体を一度にドロップ
するために使用されます。そのテーブルの権限、トリガー、インデックス、制約、定義、およびすべてのデータを削除します。
構文
DROP TABLE your_table_name;
ROLLBACK
コマンドを使用して DROP
操作を元に戻すことはできません。DELETE
DELETE
コマンドは、指定されたテーブルから 1つまたは複数の行を削除します。これは、データ操作言語(DML)コマンドの 1つです。
1 行を DELETE
する場合は、DELETE
コマンドを WHERE
句とともに使用します。WHERE
句は、WHERE
句を省略することにより、テーブルからすべての行を削除します。
DELETE
コマンドは、トランザクションログ内の削除されたすべての行を追跡するため、TRUNCATE
コマンドよりも低速です。DELETE
コマンドは、データベースから行を削除するだけで、テーブルは削除しません。
構文
#delete all rows from the table
DELETE FROM your_table_name;
#delete one row from the table
DELETE FROM your_table_name WHERE your_table_name.id = 1;
ROLLBACK
コマンドを使用して復元(元に戻す)できます。TRUNCATE
TRUNCATE
コマンドは DELETE
コマンドと同様に機能しますが、データ定義言語(DDL)コマンドの 1つです。これは、WHERE
句を使用できないため、テーブルからすべての行を削除するために特に使用されます。
DELETE
と同様に、TRUNCATE
もテーブルをデータベースに保持しますが、行を削除します。このようにトランザクションログに 1 回だけ記録されるため、DELETE
コマンドよりも高速です。
構文
TRUNCATE TABLE your_table_name;
ROLLBACK
コマンドを使用して操作を元に戻すことはできません。外部キーを使用して一方のテーブルがもう一方のテーブルに関連付けられているリレーショナルデータベースがある場合はどうなりますか。どうすれば今すぐ削除できますか?この場合、ON DELETE CASCADE
オプションが追加されます。
メインテーブルで一方の行が削除されるたびに、外部キーを使用してもう一方のテーブルでも同じ行が削除されます。以下のサンプルコードで理解しましょう。tb_student
と tb_course
という名前の 2つのテーブルを作成しました。
CREATE TABLE tb_student
(
id INT PRIMARY KEY,
firstname varchar(8),
lastname varchar(8),
gender varchar(8)
);
CREATE TABLE tb_course
(
course_id INT PRIMARY KEY,
course_name varchar(8),
student_id INT,
FOREIGN KEY(student_id)
REFERENCES tb_student(id)
ON DELETE CASCADE
);
これらのテーブルにデータを入力します。完了すると、tb_student
から行を削除
するのが非常に簡単になります。
これは、tb_student
から DELETE
を実行するたびに、外部キーの ON DELETE CASCADE
オプションにより、tb_course
のそれぞれの行も削除されるためです。
まとめ
テーブルから 1つすべての行を削除するさまざまな方法を検討しました。また、データのみとテーブルとそのデータを削除することも学びました。このチュートリアルでは、外部キーとして別のテーブルに関連付けられている場合の安全な削除についても説明します。