MySQLで1つのセルのデータだけを変更・更新する方法【UPDATE文の使い方】
MySQLでテーブル内の特定の1つのセル(値)だけを変更したい場合は、UPDATEコマンドを使用します。WHERE句で対象の行を絞り込むことで、他のデータに影響を与えることなく、目的のセルのみを安全に更新できます。
UPDATE文の基本構文
UPDATE yourTableName SET yourColumnName = yourNewValue WHERE yourColumnName = yourOldValue;
構文の各要素は以下の通りです。
- yourTableName:更新対象のテーブル名
- yourColumnName:変更したいカラム名と、検索条件に使うカラム名
- yourNewValue / yourOldValue:新しい値と、現在の値(古い値)
それでは、実際にサンプルテーブルを作成しながら、一連の手順を確認していきましょう。
ステップ1:テーブルの作成
まず、CREATE TABLE文でサンプル用のテーブルを作成します。
mysql> create table changeCellsData
-> (
-> Id int,
-> Name varchar(100),
-> Age int
-> );
Query OK, 0 rows affected (0.81 sec)
ステップ2:レコードの挿入
次に、INSERTコマンドで複数のレコードを追加します。
mysql> insert into changeCellsData values(101,'Mike',23); Query OK, 1 row affected (0.12 sec) mysql> insert into changeCellsData values(103,'Bob',25); Query OK, 1 row affected (0.18 sec) mysql> insert into changeCellsData values(105,'Sam',27); Query OK, 1 row affected (0.12 sec) mysql> insert into changeCellsData values(106,'Carol',21); Query OK, 1 row affected (0.24 sec)
ステップ3:登録内容の確認
SELECT文ですべてのレコードを表示し、現状を把握しておきましょう。
mysql> select *from changeCellsData;
出力結果
+------+-------+------+ | Id | Name | Age | +------+-------+------+ | 101 | Mike | 23 | | 103 | Bob | 25 | | 105 | Sam | 27 | | 106 | Carol | 21 | +------+-------+------+ 4 rows in set (0.00 sec)
ステップ4:特定のセルのデータを更新する
ここからが本題です。UPDATE文とSET句を組み合わせて、セルのデータを変更します。今回は「Id」カラムの最後のレコード(106)を「107」に更新してみます。
mysql> update changeCellsData set Id=107 where Id=106; Query OK, 1 row affected (0.19 sec) Rows matched: 1 Changed: 1 Warnings: 0
実行結果に「Rows matched: 1 Changed: 1」と表示されており、該当する1行が正しく更新されたことがわかります。
ステップ5:更新結果の確認
最後に、再度SELECT文を実行して、セルのデータが実際に書き換えられているかチェックしましょう。
mysql> select *from changeCellsData;
出力結果
+------+-------+------+ | Id | Name | Age | +------+-------+------+ | 101 | Mike | 23 | | 103 | Bob | 25 | | 105 | Sam | 27 | | 107 | Carol | 21 | +------+-------+------+ 4 rows in set (0.00 sec)
「Carol」のレコードのIdが「106」から「107」に変更されているのが確認できました。このように、UPDATE文とWHERE句を組み合わせることで、テーブル内の任意の1つのセルだけをピンポイントで更新することが可能です。
まとめと注意点
- UPDATE文で特定のセルを更新する際は、必ずWHERE句で対象の行を指定する
- WHERE句を忘れるとテーブル内の全行が更新されてしまうため、特に注意が必要
- 更新前にSELECT文で対象データを確認しておくとミスを防げる
- 本番環境では、トランザクションやバックアップを活用してから作業することを推奨
-
MySQLで1つのスキーマから別のスキーマへデータを挿入する方法
MySQLでは、INSERT INTO ... SELECT文を使うことで、あるデータベース(スキーマ)から別のデータベースへ簡単にデータをコピーできます。ここでは、「web」と「test」という2つのデータベースを例に、具体的な手順を解説します。 基本構文 スキーマ間でデータを挿入する際の基本構文は以下の通りです。 insert into データベース名2.テーブル名2 select *from データベース名1.テーブル名1; ポイントは、テーブル名の前に「データベース名.(ドット)」を付けることです。これにより、現在接続しているデータベースに関係なく、任意のスキーマのテーブルを指定できま
-
【MySQL】別のテーブルのデータを参照してテーブルを更新する方法(UPDATE+JOIN)
MySQLでは、UPDATEコマンドとJOINを組み合わせることで、別のテーブルのデータを参照しながら、対象のテーブルを効率的に更新できます。本記事では、2つのテーブルを使った具体的なサンプルを通じて、その手順をわかりやすく解説します。 手順1:参照元のテーブルを作成する まず、氏名データを保持する1つ目のテーブル「demo54」を作成します。 mysql> create table demo54-> (-> firstName varchar(20),-> lastName varchar(20)-> );Query OK, 0 rows affected (