update
既存のレコードの値を変更するために使用
<構文>
.sql
UPDATE テーブル名
SET 列名1 = 新しい値1, 列名2 = 新しい値2, ...
WHERE 条件;
・UPDATE文の対象となるテーブル名を指定
・SET句を使用して、変更したい列とその新しい値を指定します
複数の列を変更する場合はカンマで区切る
・WHERE句を使用して、変更する対象となるレコードを絞り込み
条件を指定しない場合、テーブル内の全てのレコードが変更される
Example
▼ usersテーブル
.sql
CREATE TABLE users (
id INT,
name VARCHAR(50),
age INT
);
以下の処理で、idが1のuserの年齢は30にupdateされる
.sql
UPDATE users
SET age = 30
WHERE id = 1;
update x サブクエリ
<構文>
.sql
UPDATE テーブル名
SET 列名1 = (SELECT サブクエリ),
列名2 = (SELECT サブクエリ),
...
WHERE 条件;
products テーブルの特定の条件を満たす商品の価格を5%値上げさせる
条件:販売個数が10個以上の商品
.sql
update products
set price = price * 1.05
where
id in
(
select
product_id
from order_details
group by product_id
having sum(product_qty) >= 10
);
order_details テーブルからの結果を使用して、
特定の条件に基づいて products テーブルを更新している
id
と()内のselectの戻り値を一つ一つ見て、価格を上げるかどうか判定してる