初めに
こんにちはiwanagaです。
今回は前回に引き続きSQLの学習をしていきます。
UPDATE文
SELECT文ばかりやっていて偏りが出てるかと思いましたので今回はUPDATE文を学習します。仕事でやるとなると自分もなかなか不安なので、頑張ります。
基礎
まずは今回使うテーブルを下記に記載します。
テーブル名:group
ID | first_name | last_name | team | salary| |
---|---|---|---|---|
1 | taro | yamada | IT | 200000 |
2 | jiro | suzuki | food | 220000 |
3 | sabro | kitano | book | 320000 |
4 | hanako | iwai | IT | 110000 |
5 | matuko | dx | food | 250000 |
6 | yuta | abe | IT | 540 |
例 1: ID1の給与を更新
UPDATE group
SET salary = 210000
WHERE ID = 1;
結果は下記の様になります。
ID | first_name | last_name | team | salary| |
---|---|---|---|---|
1 | taro | yamada | IT | 210000 |
2 | jiro | suzuki | food | 220000 |
3 | sabro | kitano | book | 320000 |
4 | hanako | iwai | IT | 110000 |
5 | matuko | dx | food | 250000 |
6 | yuta | abe | IT | 540 |
例 2: 複数の行を更新
UPDATE group
SET last_name = 'tanaka'
WHERE team = 'IT';
結果は下記の様になります。
ID | first_name | last_name | team | salary| |
---|---|---|---|---|
1 | taro | tanaka | IT | 210000 |
2 | jiro | suzuki | food | 220000 |
3 | sabro | kitano | book | 320000 |
4 | hanako | tanaka | IT | 110000 |
5 | matuko | dx | food | 250000 |
6 | yuta | tanaka | IT | 540 |
teamがITの方々は皆last_nameがtanakaになりました。
応用
少し応用になりますがCASEも紹介させていただきます。
CASEは特定の条件の場所に条件を加えて更新するものになります。今までが1に対して2をかけた合計の2をこちら側で計算、更新していたのがCASEの場合1に2をかける命令をするといった感じです。
これを上記のテーブルに当てはめて文を作成すると
UPDATE group
SET salary = CASE
WHEN team = 'IT' THEN salary * 1.1
WHEN team = 'book' THEN salary * 1.5
WHEN team = 'food' THEN salary * 2
ELSE salary
END;
すると結果は下記の様になります。
ID | first_name | last_name | team | salary| |
---|---|---|---|---|
1 | taro | tanaka | IT | 231000 |
2 | jiro | suzuki | food | 440000 |
3 | sabro | kitano | book | 480000 |
4 | hanako | tanaka | IT | 121000 |
5 | matuko | dx | food | 500000 |
6 | yuta | tanaka | IT | 594 |
最後に
今回もご覧いただきありがとうございました。
最後にUPDATE文を使用するにあたっての注意事項を記載させていただきます。
・更新内容の確認
当たり前ではありますが更新するデータを事前に確認し、誤ったデータが更新されないように注意してください。不要なデータの更新を避けるために、更新内容を慎重に検討しましょう。
・トランザクションを使用する
UPDATE文を実行する前に、トランザクションを開始して変更を確認することをお勧めします。トランザクションを使用すると、変更を一括してコミットまたはロールバックできます。これをしないと失敗した時ものすごく怒られます。
・トランザクションのコミット
変更を確認し、データが正しく更新された場合にトランザクションをコミットして変更を確定させることを忘れないようにしましょう。コミットする前にデータの確認を怠らないでください。
・パフォーマンスへの影響
大規模なテーブルのデータを更新する場合、UPDATE文のパフォーマンスに注意が必要です。適切なインデックスや条件を使用して、パフォーマンスを最適化しましょう。
・権限とセキュリティ
UPDATE文を実行するために必要な権限を確認し、不正なアクセスを防ぐためにセキュリティ対策を実施しましょう。
以上です。
参照
https://www.sejuku.net/blog/72910#index_id9
エンジニアファーストの会社 株式会社CRE-CO iwanaga