INSERT / UPDATE / DELETEと安全確認:変更系SQLの基本

入門 | 10分 で読める | 2026.06.17

公式ドキュメント

SQLには、データを読む SELECT だけでなく、データを追加・更新・削除する命令があります。これらは便利ですが、間違えると大量のデータに影響します。

一言でいうと

変更系SQLは、実行前にSELECTで対象を確認し、必要ならトランザクション内で実行します。

変更系SQLの種類

SQL役割
INSERT行を追加する
UPDATE既存の行を更新する
DELETE行を削除する

読み取りと違い、変更系SQLはデータベースの状態を変えます。そのため、実行前の確認が重要です。

INSERT

INSERT は新しい行を追加します。

INSERT INTO users (name, email)
VALUES ('Sato', 'sato@example.com');

追加後に内容を確認します。

SELECT id, name, email
FROM users
WHERE email = 'sato@example.com';

UPDATE

UPDATE は既存の行を更新します。

UPDATE users
SET email = 'new-sato@example.com'
WHERE id = 1;

ここで重要なのは WHERE です。WHERE がないと、全行が対象になります。

UPDATE users
SET active = false;

このSQLは、すべてのユーザーを無効化する可能性があります。

DELETE

DELETE は行を削除します。

DELETE FROM users
WHERE id = 1;

DELETEWHERE がないと危険です。

DELETE FROM users;

これは、テーブル内の全行を削除するSQLです。

UPDATEとDELETEでは、WHERE句の有無を必ず確認します。

実行前のSELECT確認

変更系SQLを実行する前に、同じ条件で SELECT します。

SELECT id, name, email
FROM users
WHERE id = 1;

この結果を見て、対象が正しいと確認してから UPDATEDELETE を実行します。

更新対象が複数行なら、件数も確認します。

SELECT COUNT(*)
FROM users
WHERE active = false;

トランザクション

トランザクションを使うと、変更を確定する前に確認できます。

BEGIN;

UPDATE users
SET active = false
WHERE id = 1;

SELECT id, name, active
FROM users
WHERE id = 1;

ROLLBACK;

問題なければ COMMIT、取り消すなら ROLLBACK します。

不安な更新は、BEGINしてから確認し、最後にCOMMITする流れにします。

よくある誤解

誤解実際
DELETE しても簡単に戻せるバックアップやトランザクションがなければ戻せないことがあります
UPDATE は1行だけ変わるWHERE 条件次第で何行でも変わります
開発環境なら安全接続先を間違える事故があります
SELECT確認は面倒変更系SQLでは最も重要な安全確認です

まとめ

INSERT は追加、UPDATE は更新、DELETE は削除です。UPDATEDELETE は特に危険なので、同じ条件で SELECT し、対象行と件数を確認してから実行します。不安な操作ではトランザクションを使い、確認後に COMMIT します。

参考リソース

← 一覧に戻る
PR
PR
PR
PR