SQLのDELETE文とTruncate文で行を削除するサンプルです。
目次
削除する | DELETE文 |
Truncate文 |
DELETE文
DELETE FROM テーブル名 WHERE 条件; |
- where句の条件に合致した行を削除します。
- where句の条件に合致した行が複数行の場合、複数行削除します。
- where句の条件に合致する行がない場合は何もしません。
- where句がない場合、全ての行を削除します。
- where句に副問合せを記述できます。
- ロールバックできます。
以下のテーブルがあるとします。
id | name | romaji |
---|---|---|
1 | 鈴木 | suzuki |
2 | 田中 | tanaka |
3 | 佐藤 | sato |
上記テーブルに対してdeleteでデータを削除します。
DELETE FROM syain
WHERE id = 3;
1行目は、deleteの後にsyainテーブルを指定しています。
2行目は、削除する行を指定しています。
結果は、以下のとおりです。
id | name | romaji |
---|---|---|
1 | 鈴木 | suzuki |
2 | 田中 | tanaka |
id=3のデータが削除されました。
Truncate文
Truncate table テーブル名; |
- テーブルのデータを全て削除します。
- where句をつけることはできません。
- delete文より高速です。
- ロールバックできません。
- truncateは、切り捨てるという意味です。
以下のテーブルがあるとします。
id | name | romaji |
---|---|---|
1 | 鈴木 | suzuki |
2 | 田中 | tanaka |
3 | 佐藤 | sato |
上記テーブルに対してTruncate tableでデータを削除します。
Truncate table syain;
1行目は、Truncate tableの後に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 JOIN 外部結合のサンプル
SQL 副問合せのサンプル(サブクエリ)
SQL 自己結合のサンプル
SQL UNIONとUNION ALLのサンプル(結合して抽出)