SQL DELETE文とTruncate文のサンプル

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

目次

削除する DELETE文
  Truncate文

DELETE文

DELETE  FROM  テーブル名 
WHERE   条件;
  • where句の条件に合致した行を削除します。
  • where句の条件に合致した行が複数行の場合、複数行削除します。
  • where句の条件に合致する行がない場合は何もしません。
  • where句がない場合、全ての行を削除します。
  • where句に副問合せを記述できます。
  • ロールバックできます。

以下のテーブルがあるとします。

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

上記テーブルに対してdeleteでデータを削除します。

DELETE FROM syain
WHERE id = 3;

1行目は、deleteの後にsyainテーブルを指定しています。
2行目は、削除する行を指定しています。

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

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

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

Truncate文

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

以下のテーブルがあるとします。

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

上記テーブルに対してTruncate tableでデータを削除します。

Truncate table syain;

1行目は、Truncate tableの後にsyainテーブルを指定しています。

結果

syainテーブル
id name romaji
     

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

リンク

以下は、MySQLのDELETE構文のリンクです。
https://dev.mysql.com/doc/refman/5.6/ja/delete.html

関連の記事

SQL INSERT文のサンプル
SQL distinct 重複行を表示しないサンプル
SQL 複数の行をまとめる(集約関数/group by/having)
SQL INNER JOIN 内部結合のサンプル
SQL LEFT OUTER JOIN 外部結合のサンプル
SQL 副問合せのサンプル(サブクエリ)
SQL 自己結合のサンプル
SQL UNIONとUNION ALLのサンプル(結合して抽出)

△上に戻る