SQLiteでデータをスマートに操作する:UPDATE文とDELETE文の使い方を徹底解説

SQLiteは、軽量で扱いやすいデータベースとして、個人開発から業務システムまで幅広く利用されています。
特にアプリ開発やスクリプトでのデータ操作には欠かせない存在です。
この記事では、SQLiteで蓄積されたデータを編集したり、不要なデータを削除したりするための「UPDATE文」と「DELETE文」の基本的な使い方から応用例までを、わかりやすく解説します。
データベース操作の基礎力を高めたい方に、実践的なサンプルを交えて丁寧にご紹介します。


SQLiteのUPDATE文とは

UPDATE文は、すでにテーブルに存在しているデータの値を変更するSQL文です。
「ユーザーの名前を変えたい」「商品の価格を修正したい」といった場面で利用されます。

基本構文

UPDATE テーブル名
SET カラム名1 = 値1, カラム名2 = 値2, ...
WHERE 条件;

例:顧客の名前を更新する

たとえば、customersテーブルにある「山田太郎」さんの名前を「山田花子」に変更したい場合は以下のように記述します。

UPDATE customers
SET name = '山田花子'
WHERE name = '山田太郎';

WHERE句を忘れるとどうなる?

非常に重要なのがWHERE句の指定です。
これを忘れると、テーブル内のすべてのレコードが更新されてしまいます。

-- 全レコードのnameが"山田花子"になる
UPDATE customers
SET name = '山田花子';

複数のカラムを同時に更新する

UPDATE products
SET price = 1980, stock = 10
WHERE product_id = 3;

複数のカラムをカンマで区切って一括更新することもできます。


SQLiteのDELETE文とは

DELETE文は、特定の条件に一致するレコードをテーブルから削除するSQL文です。
誤って実行するとデータが消えてしまうため、慎重に扱う必要があります。

基本構文

DELETE FROM テーブル名
WHERE 条件;

例:特定のユーザーを削除する

DELETE FROM customers
WHERE name = '山田花子';

このSQL文は、customersテーブルから「山田花子」さんのデータを削除します。

条件を省略すると…

DELETE FROM customers;

このようにWHERE句を省略すると、すべてのレコードが削除されるので注意しましょう。テーブル構造(カラムの定義)はそのまま残ります。


UPDATEとDELETEの実行前に確認すべきポイント

1. WHERE句での絞り込み確認

WHERE条件が正しく指定されているかを、先にSELECT文で確認しておくと安全です。

SELECT * FROM customers WHERE name = '山田花子';

2. トランザクションでの安全な処理

SQLiteではトランザクションを使うことで、まとめての処理を途中で取り消す(ロールバック)ことができます。

BEGIN TRANSACTION;

UPDATE products SET price = 1000 WHERE category = 'セール品';

-- 問題があれば元に戻せる
-- ROLLBACK;
-- 問題なければ反映
COMMIT;

3. データのバックアップを取る

更新・削除前には、対象テーブルのバックアップを取っておくことをおすすめします。

CREATE TABLE customers_backup AS SELECT * FROM customers;

UPDATE・DELETEの応用例

条件に合致した複数行を一括更新

UPDATE orders
SET status = '出荷済'
WHERE order_date < '2024-12-31' AND status = '未発送';

削除条件にサブクエリを使う

DELETE FROM users
WHERE id IN (
SELECT user_id FROM logs WHERE login_failed > 5
);

このようにサブクエリを用いることで、複雑な条件での削除も可能です。


SQLiteでUPDATE・DELETEを行う際の注意点

  • WHERE句なしでの実行は要注意:意図しない全件更新・削除の原因になります。
  • トランザクションを活用する:失敗時にロールバックできるようにしておくと安心。
  • サブクエリの使用で柔軟な操作が可能:絞り込み条件が複雑な場合に有効。
  • データのバックアップはこまめに:特に本番環境では必須の対策です。

まとめ

SQLiteのUPDATE文とDELETE文は、データベースを適切にメンテナンスするために欠かせない基本操作です。
ただし、間違った使い方をするとデータを失うリスクもあるため、特にWHERE句の指定には細心の注意を払いましょう。
本記事の内容を参考に、安全かつ効率的にデータを更新・削除できるようになれば、SQLiteをさらに自在に扱えるようになるはずです。

タイトルとURLをコピーしました