「DELETEとTRUNCATEってどっちも削除じゃないの?」
応用情報技術者試験でもデータベース分野で頻出ですが、
- 両方削除?
- DROPと何が違う?
- 速度違う?
- WHERE使える?
で混乱する人がかなり多いテーマです。
この記事では、
- DELETEとは?
- TRUNCATEとは?
- 違い
- DROPとの違い
- 試験での頻出ポイント
を分かりやすく解説します!
まず結論
DELETE
「条件を指定してデータ削除できる」
TRUNCATE
「テーブル内データを一括削除する」
これが最大の違い!
超簡単にいうと
| コマンド | イメージ |
|---|---|
| DELETE | 必要な物だけ捨てる |
| TRUNCATE | 箱の中を全部空にする |
DELETEとは?
超頻出!
DELETE
役割:
レコード削除
特徴
- 条件指定可能
- 一部削除可能
- 行単位削除
例
DELETE FROM 社員
WHERE 部署=’営業’;
意味
営業部だけ削除。
WHERE省略すると?
超重要!
DELETE FROM 社員;
↓
全件削除
TRUNCATEとは?
超重要!
役割
全データ高速削除
例
TRUNCATE TABLE 社員;
特徴
- 全件削除のみ
- 高速
- 条件指定不可
WHERE使える?
答え:
使えない
なぜ速い?
重要!
DELETE
1行ずつ削除
TRUNCATE
まとめて初期化
ログ量の違い
試験頻出!
| 項目 | DELETE | TRUNCATE |
|---|---|---|
| ログ量 | 多い | 少ない |
| 処理速度 | 遅め | 高速 |
DELETEとTRUNCATEの違い
| 比較 | DELETE | TRUNCATE |
|---|---|---|
| 条件削除 | ○ | × |
| WHERE | ○ | × |
| 全削除 | ○ | ○ |
| 速度 | 遅め | 高速 |
| 行単位 | ○ | × |
DROPとの違い
超頻出!
DELETE
データ消す
TRUNCATE
データ全部消す
DROP
テーブル消す
イメージ
DELETE
→ 一部掃除
TRUNCATE
→ 全部空にする
DROP
→ 箱ごと捨てる
AUTO_INCREMENTへの影響
発展知識!
DELETE
継続すること多い
TRUNCATE
リセットされること多い
※DB製品依存あり
ロールバックできる?
注意!
DELETE
できる場合多い
TRUNCATE
DB依存・制限あり
応用情報で超頻出
かなり狙われる👇
- WHERE可否
- DROP違い
- 高速削除
- 全件削除
- SQL分類
よくあるひっかけ
「TRUNCATEは条件削除できる」
→ ❌違う!
TRUNCATEは:
全削除専用
1分で復習!
DELETE
条件削除
TRUNCATE
全削除高速
DROP
テーブル削除
超重要
- WHERE
- 速度
- ログ量
練習問題
問題
TRUNCATEの特徴として最も適切なものはどれか。
ア
WHERE句が使える
イ
一部レコード削除向き
ウ
テーブル内データを高速に全削除する
エ
テーブル定義も削除する
解答
正解:ウ
解説
TRUNCATEは、テーブル構造を残したまま全データを高速削除します。
まとめ
DELETEとは
「条件削除」
TRUNCATEとは
「高速全削除」
超重要
- WHERE可否
- DROPとの違い
- ログ量
- 処理速度
まずは、
「DELETE=1件ずつ消す」
「TRUNCATE=まとめて空にする」
このイメージを持つとかなり理解しやすくなります!
知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

未経験から、ITエンジニアへ。
「IT業界に興味はあるけれど、自分にできるか不安」「何から始めればいいのか分からない」そんな方のために、Tech GO は未経験からのIT転職を専門的にサポートします。求人を紹介するだけではなく、あなたの強みを整理し、応募準備から入社後の成…
まずは無料でキャリア相談

コメント