【簡単】SQLのTRUNCATEを完全マスター|実例付きで解説

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年5月)

✔以下の疑問をお持ちの方へ向けた記事です

「SQLのTRUNCATE文とは何で、どのように使うのだろうか?」
「SQLのTRUNCATE文の使い方を学びたい」
「SQLのTRUNCATE文の具体的な使用例を見て理解したい」

✔この記事を読むことで得られる知識

  • SQLのTRUNCATE文の基本的な使い方
  • TRUNCATE文の応用法
  • SQLのTRUNCATE文を用いた具体的な使用例

この記事では、SQLのTRUNCATE文の基本的な使い方から、その応用法まで、具体的な例を交えて詳細に説明します。

ぜひ最後までお読みください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間17万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

SQLのTRUNCATE文を理解するための前提知識

この記事では、SQLの基本やデータ操作言語(DML)の全体像について説明します。

まずは基礎を理解のうえ、TRUNCATE文へ進みましょう。

  • SQLとは?
  • DMLとは?
  • DMLの一部: SELECT, INSERT, UPDATE, DELETE

SQLとは?

SQL(Structured Query Language)は、リレーショナルデータベース管理システム(RDBMS)でデータを操作するための標準的な言語です。

データの検索、挿入、更新、削除など、データベースの操作に広く利用されます。

DMLとは?

DML(Data Manipulation Language)は、SQLの一部で、データの検索、挿入、更新、削除などをおこなうための言語です。

DMLを理解することで、データベース内のデータを効果的に操作することが可能になります。

DMLの一部: SELECT, INSERT, UPDATE, DELETE

主なDMLには以下のようなものがあります。

  • SELECT:データの検索
  • INSERT:データの挿入
  • UPDATE:データの更新
  • DELETE:データの削除

それぞれがデータベース内のデータに対する特定の操作を担当しています。

DELETEとTRUNCATEの違いと使い分け

ここでは、データの削除を行うDELETEとTRUNCATEの違いと使い分けについて詳しく解説します。

  • DELETEの基本的な使い方
  • ORDER BYを使ったレコードの削除
  • TRUNCATEの基本的な使い方
  • DELETEとTRUNCATEの比較と使い分け

DELETEの基本的な使い方

DELETEは、指定した条件に一致するレコードをデータベースから削除するためのコマンド。

条件を指定しない場合、テーブル内のすべてのレコードが削除されます。

DELETEは対象となるレコードを一つずつ検査するので、大量のデータを削除する場合にはパフォーマンス上の問題が発生する可能性があります。

ORDER BYを使ったレコードの削除

DELETEコマンドと組み合わせて使われることもあるのが、ORDER BY句です。

これを用いると、特定の順序で並べられたレコードの中から、上から順に指定した数だけ削除することが可能になります。

これは例えば、古いデータだけを削除したいときなどに有用です。

TRUNCATEの基本的な使い方

TRUNCATEはDELETEとは異なり、テーブル内のすべてのレコードを一度に高速に削除します。

また、TRUNCATEはテーブルの構造自体は維持します。

ただし、削除したデータはトランザクションを利用してロールバックすることができません。

そのため、削除したデータを元に戻すことが必要な場合は、TRUNCATEではなくDELETEを使用する必要があります。

DELETEとTRUNCATEの比較と使い分け

特定のレコードを指定して削除する必要がない場合には、TRUNCATEのほうが高速です。

なぜならTRUNCATEは、一度にすべてのデータを削除するから。

しかし、削除したデータを元に戻す可能性がある場合や、特定のレコードのみを削除する場合は、DELETEコマンドを使用しましょう。

TRUNCATEコマンドの詳細

次に、TRUNCATEコマンドの詳細について深掘りします。

  • TRUNCATEコマンドの基本構文
  • TRUNCATEコマンドの使用例

TRUNCATEコマンドの基本構文

TRUNCATEコマンドの基本的な構文はこちら。

TRUNCATE TABLE テーブル名

このコマンドを実行すると、指定したテーブルのすべてのレコードが削除され、テーブルは空の状態(初期状態)に戻ります。

ただしテーブルの構造や定義は変わらずに保持されます。

列の名前やデータ型、制約などはそのままに、中のデータだけが全て消去されるということです。

TRUNCATEコマンドの使用例

以下に、TRUNCATEコマンドの使用例を示します。

TRUNCATE TABLE employees;

上記のコマンドを実行すると、”employees”という名前のテーブル内の全てのレコードが削除されます。

結果として、テーブルはレコードが一つもない初期状態に戻ります。

TRUNCATEに関する注意点

TRUNCATEコマンドを利用する上での注意点をまとめてみましょう。

  • TRUNCATEとトランザクション
  • TRUNCATEとインデックス
  • TRUNCATEとデータ復元

TRUNCATEとトランザクション

TRUNCATEは通常、トランザクションの対象外であり、一度実行するとロールバック(操作の取り消し)ができません

したがって、誤って実行してしまった場合でもデータを復元することができません。

そのため、TRUNCATEコマンドを実行する前には十分に注意が必要です。

TRUNCATEとインデックス

TRUNCATEはテーブルの全データを削除しますが、テーブルのインデックスは削除されません。

しかし、TRUNCATEを実行すると、インデックスも再構築されます。

したがって、大きなテーブルの場合、インデックスの再構築に時間がかかることがあります。

TRUNCATEとデータ復元

前述の通り、TRUNCATEコマンドで削除したデータはトランザクションを用いてロールバックすることができません。

そのため、誤って削除してしまった場合でもデータを復元することは難しいです。

これはDELETEコマンドとの大きな違いの一つで、この点を理解しておくことは重要です。

SQLにおけるデータの削除と初期化

次に、SQLにおけるデータの削除と初期化について見ていきましょう。

  • DELETEコマンドでのデータ削除
  • TRUNCATEコマンドでのデータ削除と初期化

DELETEコマンドでのデータ削除

前述のとおり、DELETEコマンドは条件を指定してデータを削除できます。

削除されたデータはロールバックを用いて復元することも可能です。

テストデータを削除したり、特定の条件に合致するレコードを削除したりする際に便利です。

TRUNCATEコマンドでのデータ削除と初期化

TRUNCATEコマンドはテーブル内の全てのデータを一度に削除し、テーブルを初期状態に戻します

この操作は、大量のテストデータを一度に削除したい時や、テーブルを初期状態にリセットしたい場合に便利です。

ただし、TRUNCATEコマンドを使用するとデータの復元はできませんので、注意が必要です。

まとめ

当記事でまなんだこと。

  • SQLのDELETEとTRUNCATEコマンドの違いと使い分け
  • TRUNCATEコマンドの詳細な使い方と注意点
  • SQLにおけるデータの削除と初期化

SQLにはほかにもさまざまな機能が存在します。

例えば、データ定義言語(DDL)を用いてテーブルやインデックスの作成、変更、削除が可能。

また、データ制御言語(DCL)を用いて、ユーザーのデータベースへのアクセス制御もおこなえます。

これらの知識も身につけることで、より深いデータベース操作が可能になるでしょう。

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