English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQL テーブルクリア(TRUNCATE TABLE 文)

このチュートリアルでは、SQLを使用してテーブルからすべての行を迅速に削除する方法を学びます。

テーブルデータを削除

TRUNCATE TABLE文は、DELETと比較してテーブルからすべての行を削除する方が速いです。論理的には、TRUNCATE TABLEは以下に似ています:DELETEありませんWHERE子句の文を使用します。

TRUNCATE TABLE文は、テーブルからすべての行を削除しますが、テーブルの構造や列、制約、索引などは変更されません。テーブルとデータを削除するには、以下のDROP TABLE操作を行う場合は、慎重に行ってください。

文法

TRUNCATE TABLEの基本的な文法:

TRUNCATE TABLE table_name;

データベースのテーブルに対してクリア操作を行ってみましょう。

データベースに以下のテーブルがありますemployee以下の記録を含むテーブルがあります:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 |    NULL |
+--------+--------------+------------+--------+---------+

以下のコマンドは、以下から:employeesテーブルからすべての行を削除する:

TRUNCATE TABLE employees;

上記のSQL文を実行した後、以下から試みる場合、employeeテーブル記録を選択空の結果セットが得られます。

TRUNCATE TABLE vs DELETE

DELETEとTRUNCATE TABLEは同じ効果のように見えるが、動作方法が異なります。これら2つの文の主な違いは以下の通りです:

  • TRUNCATE TABLE文はテーブルを削除し再作成し、自動増分値を初期値(通常は}}にリセットします。1)。

  • DELETEはオプションのWHERE子句を使用して削除する行をフィルタリングできますが、TRUNCATE TABLEはWHERE子句をサポートせず、すべての行を削除します。

  • TRUNCATE TABLEはDELETEよりも速く、使用するシステムリソースも少なく、DELETEは影響を受けた行数を生成して、各行を逐次削除し、データベースログに各削除行のエントリを記録しますが、TRUNCATE TABLEはすべての行を削除し、他の情報を提供しません。

ヒント:すべての行を削除して、テーブル全体を再作成したい場合は、TRUNCATE TABLEを使用します。特定の条件に基づいて行数が限られている場合や、自動増分をリセットしたくない場合、またはDELETEを使用します。