前回は、テーブルにデータを取得するSELECT文について説明しました。今回は、データを更新するUPDATE文について説明していきます!
データ準備
UPDATE文を試すためにテーブルを作成し、データを追加します。
-- テーブルの作成
CREATE TABLE products (
id NUMBER PRIMARY KEY,
name VARCHAR2(50),
price NUMBER,
category VARCHAR2(50)
);
-- データの登録
INSERT
ALL INTO products (id, name, price, category)
VALUES
(1, 'ガム', 120, 'お菓子')
INTO
products (id, name, price, category)
VALUES
(2, 'チョコレート', 150, 'お菓子')
INTO
products (id, name, price, category)
VALUES
(3, 'コーヒー', 250, '飲み物')
INTO
products (id, name, price, category)
VALUES
(4, 'りんご', 80, '果物')
INTO
products (id, name, price, category)
VALUES
(5, 'パン', 200, 'パン類')
INTO
products (id, name, price, category)
VALUES
(6, 'アイスクリーム', 300, 'お菓子')
INTO
products (id, name, price, category)
VALUES
(7, '紅茶', 180, '飲み物')
INTO
products (id, name, price, category)
VALUES
(8, 'バナナ', 60, '果物')
INTO
products (id, name, price, category)
VALUES
(9, 'サンドイッチ', 350, 'パン類')
INTO
products (id, name, price, category)
VALUES
(10, 'コーラ', 120, '飲み物')
SELECT * FROM DUAL;
商品名 | 価格 | 分類 |
---|---|---|
ガム | 120 | お菓子 |
チョコレート | 150 | お菓子 |
コーヒー | 250 | 飲み物 |
りんご | 80 | 果物 |
パン | 200 | パン類 |
アイスクリーム | 300 | お菓子 |
紅茶 | 180 | 飲み物 |
バナナ | 60 | 果物 |
サンドイッチ | 350 | パン類 |
コーラ | 120 | 飲み物 |
UPDATE文の使い方
データを更新するUPDATE文は下記のように記述します。
UPDATE テーブル名
SET 列名1 = 値1, 列名2 = 値2 …
WHERE 条件式
WHERE句の使い方は下記記事で説明しました。
UPDATE テーブル名
SET 列名1 = 値1, 列名2 = 値2 …
だけでデータを更新することもできますが、これではテーブル全ての列(カラム)の値を更新してしまいます。
例えば、作成した商品テーブルの価格を全て0円に設定する場合は下記の記述になります。
UPDATE products
SET price = 0
商品名 | 価格 | 分類 |
---|---|---|
ガム | 0 | お菓子 |
チョコレート | 0 | お菓子 |
コーヒー | 0 | 飲み物 |
りんご | 0 | 果物 |
パン | 0 | パン類 |
アイスクリーム | 0 | お菓子 |
紅茶 | 0 | 飲み物 |
バナナ | 0 | 果物 |
サンドイッチ | 0 | パン類 |
コーラ | 0 | 飲み物 |
0円になってしまったガムの価格を120円に設定してみます。
UPDATE products
SET price = 120
WHERE name = 'ガム'
商品名 | 価格 | 分類 |
---|---|---|
ガム | 120 | お菓子 |
果物は一律300円!
UPDATE products
SET price = 300
WHERE category = '果物'
商品名 | 価格 | 分類 |
---|---|---|
りんご | 300 | 果物 |
バナナ | 300 | 果物 |
カテゴリーを複数指定して価格を更新。
UPDATE products
SET price = 200
WHERE category IN ('お菓子', 'パン類', '飲み物')
商品名 | 価格 | 分類 |
---|---|---|
ガム | 200 | お菓子 |
チョコレート | 200 | お菓子 |
コーヒー | 200 | 飲み物 |
りんご | 300 | 果物 |
パン | 200 | パン類 |
アイスクリーム | 200 | お菓子 |
紅茶 | 200 | 飲み物 |
バナナ | 300 | 果物 |
サンドイッチ | 200 | パン類 |
コーラ | 200 | 飲み物 |
まとめ
UPDATE文はWHERE句を使わなくてもデータの更新は可能です。ただ、全てのデータが更新されてしまうので更新したいデータをしっかりとWHERE句で指定してあげましょう。
コメント