MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで列(カラム)の値を置き換える方法|UPDATE文の使い方を解説

MySQLでテーブルの特定の列(カラム)の値を置き換えたい場合には、UPDATE文を使用します。WHERE句で対象のレコードを指定することで、該当する行だけを安全に更新できます。

この記事では、実際のSQLサンプルを使いながら、列の値を置き換える手順を順番に解説していきます。

1. サンプルテーブルを作成する

まず、動作確認用のテーブルを作成しましょう。以下のクエリを実行します。

mysql> create table DemoTable
(
    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Score int
);
Query OK, 0 rows affected (0.45 sec)

このテーブルは、学生ID(StudentId)を主キーとし、点数(Score)を持つシンプルな構造です。

2. テストデータを挿入する

次に、INSERT文を使ってレコードをいくつか登録します。

mysql> insert into DemoTable(Score) values(56);
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable(Score) values(78);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable(Score) values(34);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable(Score) values(55);
Query OK, 1 row affected (0.37 sec)

3. 登録されたデータを確認する

SELECT文ですべてのレコードを表示してみましょう。

mysql> select *from DemoTable;

実行結果は以下の通りです。

+-----------+-------+
| StudentId | Score |
+-----------+-------+
|         1 |    56 |
|         2 |    78 |
|         3 |    34 |
|         4 |    55 |
+-----------+-------+
4 rows in set (0.00 sec)

4. UPDATE文で列の値を置き換える

ここからが本題です。StudentIdが3のレコードのScoreを「95」に置き換えてみます。以下のようにUPDATE文とWHERE句を組み合わせます。

mysql> update DemoTable
    set Score=95 where StudentId=3;
Query OK, 1 row affected (0.12 sec)
Rows matched : 1 Changed : 1 Warnings : 0

「Rows matched : 1 Changed : 1」と表示されていることから、1件のレコードが正しく更新されたことがわかります。

注意ポイント

  • WHERE句を忘れないこと: WHERE句を指定しないと、テーブル内のすべての行が更新されてしまいます。
  • 対象レコードの一意な指定: 主キーなど一意に特定できる列を条件にすると、意図しないデータの書き換えを防げます。

5. 更新結果を確認する

もう一度SELECT文を実行して、テーブルの内容を確認しましょう。

mysql> select *from DemoTable;

実行結果は以下の通りです。

+-----------+-------+
| StudentId | Score |
+-----------+-------+
|         1 |    56 |
|         2 |    78 |
|         3 |    95 |
|         4 |    55 |
+-----------+-------+
4 rows in set (0.00 sec)

StudentIdが3のレコードのScoreが「34」から「95」に置き換わっていることが確認できました。

まとめ

MySQLで列の値を置き換えるには、UPDATE テーブル名 SET 列名=新しい値 WHERE 条件; という基本構文を使用します。WHERE句による条件指定を適切に行うことで、特定のレコードだけを安全に更新できます。本番環境でのデータ更新時には、事前にSELECT文で対象レコードを確認しておくと、誤操作のリスクを大幅に減らせますのでおすすめです。

  1. MySQLのREPLACE関数で列の値に含まれる文字列を一括置換する方法

    はじめにMySQLでは、UPDATE文とREPLACE()関数を組み合わせることで、テーブルの列に含まれる特定の文字列(特殊文字など)を簡単に一括置換できます。この記事では、実際のサンプルコードを使ってその手順をわかりやすく解説します。サンプルテーブルの作成まず、以下のコマンドでテーブルを作成します。mysql> create table DemoTable1574 -> ( -> StudentCode varchar(20) -> );Query OK, 0 rows affected (0.59 sec)レコードの挿入次に、INSERTコマンドを

  2. MySQLクエリで列にユーザー定義の値を追加する方法

    MySQLでは、UNION ALLを活用することで、既存の列の値に加えて、ユーザーが自由に定義した値をクエリ結果に追加できます。ここでは、ENUM型の列を持つテーブルを例に、その具体的な手順を解説します。 1. サンプルテーブルの作成 まず、ENUM型のカラムを持つテーブルを作成します。 mysql> create table DemoTable1847      (      GameStatus ENUM(PENDING,COMPLETED,CANCELLED)      ); Query OK