SQL DELETE文/Truncate文でテーブルの行を削除する

目次

DELETE文でテーブルの行を削除する

サンプル

DELETE FROM employee
WHERE id = 3;

 

解説

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

 

使用例

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

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

 

以下のSQLを実行します。

DELETE FROM employee
WHERE id = 3;

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

 

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

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

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

 

likeの前方一致で行を削除する

DELETE FROM employee 
where romaji like 'tana%'

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

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

 

Truncate文ですべての行を削除する

サンプル

Truncate table employee;

 

解説

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

 

使用例

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

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

 

以下のSQLを実行します。

Truncate table employee;

 

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

employeeテーブル
id name romaji
     

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

 

Drop Table文でテーブルを削除する

サンプル

Drop table employee;

 

解説

Drop Table テーブル名;
  • テーブル自体を削除します。

 

使用例

Drop Table文で以下のテーブルを削除します。

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

 

以下のSQLを実行します。

Drop table employee;

 

結果は、テーブルが削除されます。

 

関連の記事

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

△上に戻る