LoginSignup
1
2

More than 1 year has passed since last update.

【SQL】updateでレコードを更新する

Last updated at Posted at 2023-05-23

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の戻り値を一つ一つ見て、価格を上げるかどうか判定してる

参考資料

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2