2021年5月22日土曜日

SQLite 3 テーブルのデータを削除する (delete)

概要

SQLite3におけるdelete文の基本的な使い方。

構文

削除したいレコードの条件をwhere句で指定するのが基本。


delete from table_name
where
    column = value ...
                    

実行例

サンプルテーブル(product)
id name quantity
1 tomato 100
2 potato 120
3 pumpkin 50

「name」カラムの値が「tomato」のレコードを削除する


delete from product
where
    name = 'tomato';
                    
結果
id name quantity
2 potato 120
3 pumpkin 50

テーブルの全レコードを削除する

SQLite 3 ではOracleやMySQLのような「truncate」構文がサポートされていない。 テーブルの全レコードを削除する場合はwhere句を指定せずにdelete文を実行すればいい。

truncateではないからと言って削除処理が遅いわけではない。
where句やreturning句を指定すると各レコードにアクセスしながら削除していくが、 これらを指定しなかった場合 各レコードにアクセスせずに テーブルの内容全体を削除するよう最適化されている。


delete from table_name;
                    

参考サイト