1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SQLを学びます。⑤

Posted at

初めに

こんにちは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

1
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?