MySQLで従業員の給与レコードを編集・更新する方法(UPDATE文とSET句の使い方)
MySQLでレコードを更新する基本:UPDATE文とSET句
MySQLでは、既存のレコードを更新する際にUPDATEコマンドを使用します。更新対象のカラムと新しい値は、SET句で指定します。この記事では、従業員の給与情報を含むサンプルテーブルを作成し、実際にレコードを編集・更新する手順を順番に解説します。
1. サンプルテーブルの作成
まず、従業員ID・氏名・給与の3つのカラムを持つテーブルを作成しましょう。
mysql> create table DemoTable ( EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY, EmployeeName varchar(50), EmployeeSalary int ); Query OK, 0 rows affected (0.57 sec)
2. レコードの挿入
INSERTコマンドを使って、複数の従業員データを登録します。
mysql> insert into DemoTable(EmployeeName,EmployeeSalary) values('Chris',56780);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(EmployeeName,EmployeeSalary) values('Robert',45670);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable(EmployeeName,EmployeeSalary) values('Mike',87654);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(EmployeeName,EmployeeSalary) values('David',34569);
Query OK, 1 row affected (0.11 sec)3. 現在のデータを確認する
SELECT文で全レコードを表示し、更新前の状態を確認しておきましょう。
mysql> select *from DemoTable;
実行すると、次のような結果が出力されます。
+------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 1 | Chris | 56780 | | 2 | Robert | 45670 | | 3 | Mike | 87654 | | 4 | David | 34569 | +------------+--------------+----------------+ 4 rows in set (0.00 sec)
4. UPDATE文で給与を一括更新する
続いて、全従業員の給与に12,346を加算して更新するクエリを実行します。SET句で「EmployeeSalary = EmployeeSalary + 12346」と指定することで、現在の値を基準に新しい値を計算できます。
mysql> update DemoTable set EmployeeSalary=EmployeeSalary+12346; Query OK, 4 rows affected (0.14 sec) Rows matched: 4 Changed: 4 Warnings: 0
5. 更新結果の確認
もう一度SELECT文を実行して、更新後のテーブルをチェックします。
mysql> select *from DemoTable;
実行すると、次のように全従業員の給与が正しく更新されていることがわかります。
+------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 1 | Chris | 69126 | | 2 | Robert | 58016 | | 3 | Mike | 100000 | | 4 | David | 46915 | +------------+--------------+----------------+ 4 rows in set (0.00 sec)
補足:WHERE句で特定のレコードだけを更新する
上記の例ではWHERE句を指定していないため、テーブル内のすべてのレコードが更新されました。特定の従業員だけ給与を変更したい場合は、WHERE句で条件を指定します。
mysql> update DemoTable set EmployeeSalary=60000 where EmployeeId=2; Query OK, 1 row affected (0.10 sec) Rows matched: 1 Changed: 1 Warnings: 0
このように、UPDATE文とSET句を組み合わせることで、レコードを柔軟に編集・更新できます。なお、WHERE句を付け忘れると意図しない全件更新につながるため、本番環境で実行する前には必ず条件を確認するようにしましょう。
-
MySQLで文字列と数値が混在するVARCHARレコードを正しくソートする方法
はじめにVARCHAR型のカラムに「101J」や「100A」のような文字列と数値が混在したデータが格納されている場合、通常のORDER BY句では辞書順(文字コード順)にソートされるため、「103M」が「101J」より前に来るなど、意図しない順序になることがあります。このようなケースでは、ORDER BY句と「+0」による暗黙の型変換を組み合わせることで、数値部分を優先した自然な順序でソートできます。本記事では、その具体的な手順を実行例とともに解説します。1. テーブルを作成するまず、検証用のテーブルを作成します。mysql> create table DemoTable ->
-
MySQLで特定の月と年に基づいてレコードを取得する方法
MySQLで特定の月と年に基づいてレコードを取得する方法日付データから特定の月と年に該当するレコードだけを抽出したい場合、MySQLの MONTH() 関数と YEAR() 関数を組み合わせて使用します。ここでは、実際にテーブルを作成し、データを挿入して、条件に合うレコードを取得するまでの手順を具体的に解説します。1. サンプルテーブルの作成まず、日付型(DATE)のカラムを持つテーブルを作成します。mysql> create table DemoTable1846 ( PurchaseDat