[SQLのはじめ方] Part6: INSERT・UPDATE・DELETEの基本

SQL

データベースのデータを操作する基本的なコマンドを学びましょう。

SQLの学習を進める中で、データベースからデータを読み取るSELECT文はすでに学びましたね。ここでは、テーブル内のデータを変更するための基本的な操作、INSERT(挿入)、UPDATE(更新)、DELETE(削除)について解説します。これらはデータを操作するための言語、DML (Data Manipulation Language) の中核となるコマンドです。

INSERT文:新しいデータを追加する ✍️

INSERT文は、テーブルに新しい行(レコード)を追加するために使用します。オンラインショップで新しい顧客が登録されたときや、ブログ記事が投稿されたときなど、新しい情報をデータベースに保存する際に使います。

基本構文

INSERT INTO テーブル名 (列名1, 列名2, 列名3, ...)
VALUES (値1, 値2, 値3, ...);
  • INSERT INTOの後に追加先のテーブル名を指定します。
  • テーブル名の後の括弧内には、値を追加する列名をカンマ区切りで指定します。(省略可能ですが、指定する方が確実です。)
  • VALUESの後には、指定した列に対応する値をカンマ区切りで指定します。列名と値の順番、データ型は一致させる必要があります。
  • 列名を省略した場合、テーブル定義順に全ての列に対する値を指定する必要があります。

使用例

例として、usersテーブル(id, name, emailを持つ)に新しいユーザーを追加してみましょう。

-- usersテーブルに新しいユーザーを追加
INSERT INTO users (id, name, email)
VALUES (1, '山田 太郎', 'yamada.taro@example.com');

このSQLを実行すると、usersテーブルにidが1、名前が「山田 太郎」、メールアドレスが「yamada.taro@example.com」の新しいユーザーが追加されます。

複数行の挿入

多くのデータベースシステムでは、一度に複数行を挿入することも可能です。(構文はデータベースによって異なる場合があります)

-- usersテーブルに複数のユーザーを一度に追加 (MySQL, PostgreSQLなど)
INSERT INTO users (id, name, email) VALUES
(2, '鈴木 花子', 'suzuki.hanako@example.com'),
(3, '田中 一郎', 'tanaka.ichiro@example.com');

UPDATE文:既存のデータを更新する 🔄

UPDATE文は、テーブル内の既存の行のデータを変更(更新)するために使用します。顧客の住所が変わった、商品の価格が変更されたなど、登録済みの情報を最新の状態にする際に使います。

基本構文

UPDATE テーブル名
SET 列名1 = 新しい値1,
    列名2 = 新しい値2,
    ...
WHERE 条件;
  • UPDATEの後に対象のテーブル名を指定します。
  • SETの後には、更新したい列名と新しい値を=でつないで指定します。複数の列を更新する場合はカンマで区切ります。
  • WHERE句で、どの行を更新するかの条件を指定します。

⚠️ UPDATE文の注意点

UPDATE文でWHERE句を省略すると、テーブル内の全ての行が更新されてしまいます! これは非常に危険な操作であり、意図しないデータ変更を引き起こす可能性があります。更新対象を明確にするために、WHERE句を必ず指定するようにしましょう。

使用例

usersテーブルで、idが1のユーザーのメールアドレスを変更してみましょう。

-- id=1のユーザーのメールアドレスを更新
UPDATE users
SET email = 'yamada.taro.new@example.com'
WHERE id = 1;

このSQLを実行すると、idが1である行のemail列の値が'yamada.taro.new@example.com'に更新されます。

複数の列を同時に更新することもできます。

-- id=2のユーザーの名前とメールアドレスを更新
UPDATE users
SET name = '佐藤 花子',
    email = 'sato.hanako@example.com'
WHERE id = 2;

DELETE文:データを削除する 🗑️

DELETE文は、テーブルから行を削除するために使用します。退会したユーザーの情報や、不要になった注文履歴などを削除する際に使います。

基本構文

DELETE FROM テーブル名
WHERE 条件;
  • DELETE FROMの後に対象のテーブル名を指定します。
  • WHERE句で、どの行を削除するかの条件を指定します。

🚨 DELETE文の最大の注意点

DELETE文でもWHERE句を省略すると、テーブル内の全ての行が削除されてしまいます! これはデータ消失につながる極めて危険な操作です。誤って全データを削除しないよう、WHERE句の指定は絶対に忘れないでください。実行前にSELECT文で対象を確認するのも有効です。

使用例

usersテーブルから、idが3のユーザーを削除してみましょう。

-- id=3のユーザーを削除
DELETE FROM users
WHERE id = 3;

このSQLを実行すると、idが3である行がusersテーブルから削除されます。

まとめ ✅

今回は、データベースのデータを操作する基本的なDMLコマンドであるINSERTUPDATEDELETEについて学びました。

コマンド主な目的特に注意すべき点
INSERT新しい行を追加する列名と値の順番・データ型を合わせる
UPDATE既存の行のデータを更新するWHERE句を省略しない (全行更新を防ぐ)
DELETE既存の行を削除するWHERE句を省略しない (全行削除を防ぐ)

これらのコマンドはデータベース操作の基本であり、頻繁に使用されます。特にUPDATEDELETEでのWHERE句の重要性をしっかり理解し、安全にデータを操作できるよう練習しましょう!

コメント

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