mysql では、「DELETE FROM [WHERE 句] [ORDER BY 句] [LIMIT 句]」コマンドを使用して単一のテーブル内のデータを削除できます。「 TRUNCATE 」コマンドも使用できます。 [TABLE] テーブル名」は、データ テーブル内のすべてのデータを削除し、テーブルをクリアします。
MySQL では、次のように使用できます。 DELETE ステートメントを使用して、テーブルから 1 つ以上のデータ行を削除します。
構文形式は次のとおりです:
DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]
構文の説明は次のとおりです:
<テーブル名>: テーブルの名前を指定します。データを削除します。
ORDER BY 句: オプション。削除時に、テーブル内の行が句で指定された順序で削除されることを示します。
WHERE 句: オプション。削除操作の削除条件を制限することを示します。この句を省略すると、表内のすべての行が削除されます。
LIMIT 句: オプション。制御コマンドがクライアントに返される前に削除する最大行数をサーバーに伝えるために使用されます。
注: WHERE 条件を使用しない場合、すべてのデータが削除されます。
例: テーブル内のデータをすべて削除する
tb_courses_new テーブル内のデータをすべて削除する 入力したSQL文と実行結果は以下のとおりです。
mysql> DELETE FROM tb_courses_new; Query OK, 3 rows affected (0.12 sec) mysql> SELECT * FROM tb_courses_new; Empty set (0.00 sec)
TRUNCATE キーワードはテーブルを完全にクリアするために使用されます。構文形式は以下のとおりです。
TRUNCATE [TABLE] 表名
このうち、TABLE キーワードは省略可能です。
例
新しいテーブル tb_student_course を作成し、データとクエリを挿入します。SQL ステートメントと実行結果は次のとおりです。
mysql> CREATE TABLE `tb_student_course` ( -> `id` int(4) NOT NULL AUTO_INCREMENT, -> `name` varchar(25) NOT NULL, -> PRIMARY KEY (`id`) -> ); Query OK, 0 rows affected (0.04 sec) mysql> INSERT INTO tb_student_course(name) VALUES ('Java'),('MySQL'),('Python'); Query OK, 3 rows affected (0.05 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> SELECT * FROM tb_student_course; +----+--------+ | id | name | +----+--------+ | 1 | Java | | 2 | MySQL | | 3 | Python | +----+--------+ 3 rows in set (0.00 sec)
TRUNCATE を使用します。 tb_student_course テーブルをクリアするステートメント レコード、SQL ステートメント、および実行結果は次のとおりです。
mysql> TRUNCATE TABLE tb_student_course; Query OK, 0 rows affected (0.04 sec) mysql> SELECT * FROM tb_student_course; Empty set (0.00 sec)
論理的に言えば、TRUNCATE ステートメントには次のような特徴があります。 DELETE ステートメントと同じ効果がありますが、場合によっては、この 2 つのステートメントの使用法に違いがある場合があります。
DELETE は DML タイプのステートメントであり、TRUNCATE は DDL タイプのステートメントです。どちらもテーブル内のデータをクリアするために使用されます。
DELETE はレコードを行ごとに削除します。TRUNCATE は元のテーブルを直接削除し、テーブル内のデータを行ごとに削除する代わりに同一の新しいテーブルを作成します。DELETE よりも高速にデータを実行します。したがって、テーブル内のすべてのデータ行を削除する必要がある場合は、TRUNCATE ステートメントを使用して実行時間を短縮してください。
DELETE データを削除した後、イベント ロールバックを使用してデータを取得できます。TRUNCATE はトランザクション ロールバックをサポートしていないため、削除後にデータを取得することはできません。
DELETE データを削除した後、システムは自動インクリメント フィールドのカウンターをリセットしません。TRUNCATE がテーブル レコードをクリアした後、システムは自動インクリメント フィールドのカウンターをリセットします。 。
DELETE は、WHERE 句で条件を指定してデータの一部を削除できるため、使用範囲が広くなります。TRUNCATE は WHERE 句をサポートしておらず、データ全体を削除することしかできません。
DELETE は削除されたデータの行数を返しますが、TRUNCATE は 0 のみを返しますが、これは意味がありません。
テーブルが不要な場合は DROP を使用し、テーブルは保持したいがすべてのレコードを削除したい場合は、 TRUNCATE を使用し、一部のレコードを削除する場合は DELETE を使用します。
推奨チュートリアル: mysql ビデオ チュートリアル
以上がmysqlコマンドを使用してデータを削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。