SQLのデータ操作(INSERT, UPDATE, DELETE)

SQLのデータ操作言語(DML: Data Manipulation Language)は、データベース内のデータを追加、変更、削除するために使用されます。

1. データの挿入 (INSERT)

INSERT 文は、テーブルに新しい行(レコード)を追加するために使用します。

全ての列に値を挿入する場合

テーブルのすべての列に値を挿入する場合、列名を省略して VALUES 句に値を指定できます。この場合、値の順序はテーブル定義の列順と一致している必要があります。

INSERT INTO テーブル名
VALUES (1, 2, ...);

例: products テーブルに新しい製品を追加します。

INSERT INTO products
VALUES (101, 'Laptop', 1200.00, 'Electronics', 50);

特定の列に値を挿入する場合

特定の列にのみ値を挿入する場合、INSERT INTO の後に列名を指定します。指定しなかった列には、デフォルト値または NULL が挿入されます。

INSERT INTO テーブル名 (1, 2, ...)
VALUES (1, 2, ...);

例: products テーブルに製品名と価格のみを指定して追加します。

INSERT INTO products (product_id, product_name, price)
VALUES (102, 'Mouse', 25.00);

2. データの更新 (UPDATE)

UPDATE 文は、テーブル内の既存のレコードの値を変更するために使用します。

UPDATE テーブル名
SET 1 = 新しい値1, 2 = 新しい値2, ...
WHERE 条件;
  • SET: 更新する列と新しい値を指定します。
  • WHERE: 更新するレコードを特定するための条件を指定します。WHERE 句を省略すると、テーブル内のすべてのレコードが更新されるため、非常に注意が必要です。

例: products テーブルで product_id が101の製品の価格を更新します。

UPDATE products
SET price = 1150.00
WHERE product_id = 101;

既存の列の値に基づいて更新することも可能です。

UPDATE products
SET stock = stock * 0.9; -- すべての製品の在庫を10%削減

3. データの削除 (DELETE)

DELETE 文は、テーブルからレコードを削除するために使用します。

DELETE FROM テーブル名
WHERE 条件;
  • WHERE: 削除するレコードを特定するための条件を指定します。WHERE 句を省略すると、テーブル内のすべてのレコードが削除されるため、非常に注意が必要です。

例: products テーブルから product_id が102の製品を削除します。

DELETE FROM products
WHERE product_id = 102;

すべてのレコードを削除する場合(テーブル構造は残す):

DELETE FROM products;

注意: TRUNCATE TABLE コマンドもテーブルの全レコードを削除しますが、DELETE とは内部的な動作が異なります。TRUNCATE TABLE はDDLコマンドであり、通常は DELETE よりも高速ですが、トランザクションログに記録されないためロールバックができない場合があります。

これらのDMLコマンドを適切に使いこなすことで、データベースのデータを効率的に管理することができます。