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コマンドを適切に使いこなすことで、データベースのデータを効率的に管理することができます。