\r\n\r\n
DELETEとTRUNCATEは、構造化されたクエリー言語(SQL)で、テーブルからレコードまたはデータを削除するために使用される2つの用語です。この2つのコマンドの最終結果は同じですが、この2つのコマンドの間にもいくつかの違いがあります。これは重要です。理解する必要があります。DELETEとTRUNCATEの主な違いは、DELTEがデータ操作言語(DML)コマンドであり、TRUNCATEがデータ定義言語(DDL)コマンドであることである。
TRUNCATEもログ操作です。TRUNCATE TABLE文は、リリースするテーブルの範囲をマークするSQLのDDLコマンドです。この操作の結果、テーブル内のすべてのデータはすぐに削除され、通常は完全性強制メカニズムを迂回します。SQL:2008規格に導入されています。「TRUNCATE TABLE mytable」文は、論理的に「WHERE」句を持たない「DELETE FROM mytable」文に等しい。「TRUNCATE TABLE」は、テーブルで使用されているデータページを解放することによって、テーブル内のすべてのデータを削除します。これにより、削除操作を記録するリソースのオーバーヘッドと、必要なロックの数が減少します。「TRUNCATE TABLE」文で「WHERE」句を指定することはできません。それはすべてあるか、ないかのどちらかです。
データベースSQLでは、DELETEは、1つまたは複数のレコードまたはデータの文をテーブルから削除することを意味します。すべてのレコードを削除する条件を使用して、サブセットの削除/削除を定義できます。MySQLなどのデータベース管理システム(DBMs)では、マルチテーブルから行を削除するために1つのdelete文(multi table deleteとも呼ばれる)を使用できます。DELETE文の構文はDELETE FROM table_name[WHERE condition]。WHEREの条件を満たす行はすべてテーブルから削除されます。文に「WHERE」句が省略されている場合、表のすべての行が削除されます。したがって、DELETE文は慎重に使用する必要があります。また、DELETE文はローを返さない。つまり、結果セットは生成されません。