##はじめに
前回に引き続き、今回はUPDATEぶんの基本構文の記事にしたいと思います。
よろしくお願いします。
##UPDATE文
UPDATE文は既存のデータを書き換えるためのものです。
UPDATE テーブル名
SET 列名1 = 値1, 列名2 = 値2
1行目にUPDATEを記述して、どのテーブルのデータを書き換えたいか、テーブル名を指定します。
2行目ではSET句を利用して対象の列名(カラム名)を書いて、'='で書き換える値を代入するように書きます。
基本的にはWHERE句をこの後に書かなければその列全ての値が=の後の値に書き変わってしまいます。
下記のような家計簿テーブルがあったとします。
日付 | 費目 | メモ | 入金額 | 出金額 |
---|---|---|---|---|
2021-08-02 | 食費 | パンを購入 | 0 | 300 |
2021-08-03 | 食費 | 晩ご飯材料 | 0 | 1000 |
2021-08-08 | 交通費 | 電車代 | 0 | 520 |
2021-08-13 | 給料 | 7月分給料 | 250,000 | 0 |
2021-08-13 | 食費 | 外食 | 0 | 7000 |
もし下記のようにしてしまうと。。。
UPDATE 家計簿
SET 出金額 = 1500
日付 | 費目 | メモ | 入金額 | 出金額 |
---|---|---|---|---|
2021-08-02 | 食費 | パンを購入 | 0 | 1500 |
2021-08-03 | 食費 | 晩ご飯材料 | 0 | 1500 |
2021-08-08 | 交通費 | 電車代 | 0 | 1500 |
2021-08-13 | 給料 | 7月分給料 | 250,000 | 1500 |
2021-08-13 | 食費 | 外食 | 0 | 1500 |
上記のように書き換えられてしまいます。
あまり実用的ではないですね。
WHERE句で日付を指定してみましょう。
UPDATE 家計簿
SET 出金額 = 1500
WHERE 日付 = '2021-08-03'
日付 | 費目 | メモ | 入金額 | 出金額 |
---|---|---|---|---|
2021-08-02 | 食費 | パンを購入 | 0 | 300 |
2021-08-03 | 食費 | 晩ご飯材料 | 0 | 1500 |
2021-08-08 | 交通費 | 電車代 | 0 | 520 |
2021-08-13 | 給料 | 7月分給料 | 250,000 | 0 |
2021-08-13 | 食費 | 外食 | 0 | 7000 |
このように任意のデータだけを書き換えることができました。
基本的にUPDATEを使うときはWHERE句はセットで使うことがほとんどになるでしょう。
参考: スッキリわかるSQL入門