SQL DELETE文とTruncate文のサンプル

SQLのDELETE文とTruncate文で行を削除するサンプルです。

目次

サンプル DELETE文
  Truncate文

DELETE文

DELETE  FROM  テーブル名 
WHERE   条件;
  • where句の条件に合致した行を削除します。
  • where句の条件に合致した行が複数行の場合、複数行削除します。
    →条件はキーを指定する、またはキー以外の場合はなるべく複数の項目を指定して、想定していない行が削除されないようにします。
    →deleteの前にwhere句にdeleteで指定するのと同じ条件でselectを実行して削除対象の行を確認してみるのもありです。
  • where句の条件に合致する行がない場合は何もしません。
  • where句がない場合、全ての行を削除します。
  • where句に副問合せを記述できます。
  • ロールバックできます。

deleteのサンプル

syainテーブルのid=3の行を、削除します。

syainテーブル
id name romaji
1 鈴木 suzuki
2 田中 tanaka
3 佐藤 sato

以下のSQLを実行します。

DELETE FROM syain
WHERE id = 3;

2行目は、削除するidを指定しています。

結果は、以下のとおりです。

syainテーブル
id name romaji
1 鈴木 suzuki
2 田中 tanaka

id=3のデータが削除されました。

 

応用

likeの前方一致で削除という使い方もできます。

DELETE FROM syain 
where romaji like 'tana%'

列名「romaji」で「tana」で始まる行を抽出します。

 

Truncate文

Truncate table テーブル名;
  • テーブルのデータを全て削除します。
  • where句をつけることはできません。
  • delete文より高速です。
  • ロールバックできません。
  • truncateは、切り捨てるという意味です。

Truncateのサンプル

syainテーブルの全ての行を、削除します。

syainテーブル
id name romaji
1 鈴木 suzuki
2 田中 tanaka
3 佐藤 sato

以下のSQLを実行します。

Truncate table syain;

結果は、以下のとおりです。

syainテーブル
id name romaji
     

syainテーブルのデータが全て削除されます。
テーブル自体は消えません。

関連の記事

SQL INSERT文のサンプル SQL INNER JOIN 内部結合のサンプル

△上に戻る