SQLでデータベースの値を変更したい場合、SQL4大命令文の一つ「update」コマンドを使用します。
きちんとupdateコマンドを把握して、良いサービスを作成しましょう。
- SQL4大命令文のひとつ、「update」コマンドの基本を理解できる
- データベースの値を変更するやり方を理解できる
データベースの値を変更するupdateコマンド
updateコマンドの基本構文を理解する
updateコマンドの基本構文は下記になります。
update テーブル名 set カラム名1 = 値,カラム名2 = 値2 where カラム 比較演算子 値;
fromの後にテーブル名を記入しております。
setの後に変更したいカラムと変更したい値を入力しております。
whereの後に条件を指定しております。条件のカラムと値はテーブルの値を参照します。比較演算子は使用可能なものから選択しております。
テーブルを参照する
今回下記のテーブルを作成したとします。カラムと値は下記から参照できます。
テーブル名:users
id | name | score |
---|---|---|
1 | user_1 | 47 |
2 | user_2 | 24 |
3 | user_3 | 33 |
今回はusersテーブルに、3人のユーザーが登録しているデータベースを使用します。
使用可能な比較演算子を抑えておく
比較演算子は下記から選択できます。
比較演算子 | 条件 |
---|---|
= | 等しい |
< | より小さい |
> | より大きい |
<= | 以下 |
>= | 以上 |
!= | 等しくない |
<> | 等しくない |
updateコマンドで具体的なテーブルの値を変更する
では「usersテーブル」のnameが「user_3」のscoreの値を「33」から「66」に変更して見ましょう。
基本構文を参照して作成して見ると、下記になりました。
update from users set score = 66 where name = 'user_3';
実行してデータベースの値を変更してみましょう。
エラーが出ました(´;ω;`)
文法エラー(Syntax error)対処法
Syntax error・・・つまり文法間違いですね。
文法エラーが出た場合は「near」の文字を探しましょう。
ありました。今回は「near ‘from users set score・・・’」となっています。
大抵の場合、nearの次の文字がおかしい事が多いです。ここでは「from・・・」ですね。ここを重点に見直します。
文法を見直したら「from」が不要ですね。SQL4大命令の「select」と「delete」構文はテーブルを指定する前に「from」といれますので、ここでも入れてしまいました。
updateコマンドでは「from」は不要でした。下記のコードに修正して実行します。
update users set score=66 where name='user_3';
user_3のscoreの値が33から66に変更していました。
SQLでupdateコマンドで、データベースの値を変更する事が出来ました。
SQLのupdateメソッドの補足情報
updateメソッドでカラムを全て初期化する方法は、以下の記事をご覧ください。