MySQLでデータを賢く更新:UPDATE、REPLACE、INSERT...SELECTを使いこなす
MySQL でセルのデータを変更する方法
構文:
UPDATE テーブル名
SET 列名1 = 値1, 列名2 = 値2
WHERE 条件;
説明:
- UPDATE: 変更対象のテーブルを指定します。
- SET: 変更する列と値をカンマ区切りで指定します。
- WHERE: 変更対象のレコードを絞り込む条件を指定します。 条件を省略すると、テーブル内のすべてのレコードが変更されます。
例:
UPDATE 顧客
SET 氏名 = '山田 太郎', 住所 = '東京都渋谷区'
WHERE 顧客ID = 1;
この例では、顧客
テーブルの 顧客ID
が 1 のレコードの 氏名
を 山田 太郎
、住所
を 東京都渋谷区
に変更します。
補足:
- 複数の列を同時に変更できます。
- WHERE 条件には、列名と値の等価比較だけでなく、論理演算子や比較演算子なども使用できます。
- データ型が異なる値を代入しようとするとエラーが発生します。
- 変更を確定するには、
COMMIT
ステートメントを実行する必要があります。
例1:顧客テーブルの顧客ID 1 のレコードの氏名と住所を変更する
UPDATE 顧客
SET 氏名 = '山田 太郎', 住所 = '東京都渋谷区'
WHERE 顧客ID = 1;
例2:社員テーブルの部署が営業部のすべての社員の給与を 10% アップする
UPDATE 社員
SET 給与 = 給与 * 1.1
WHERE 部署 = '営業部';
例3:学生テーブルのテストの点数が 90 点以上のすべての学生の評価を "優" に変更する
UPDATE 学生
SET 評価 = '優'
WHERE テスト点数 >= 90;
- 上記の例では、
顧客
,社員
,学生
というテーブルを使用しています。 - 実際のテーブル名や列名は、ご自身の環境に合わせて変更してください。
- 各例では、
WHERE
句を使用して、変更対象のレコードを絞り込んでいます。 SET
句では、変更する列と値を指定しています。
注意事項:
- 上記のコードはあくまで例であり、実際の状況に合わせて変更する必要があります。
- データベースを変更する前に、必ずバックアップを取っておいてください。
- UPDATE ステートメントを実行すると、データベースのデータが永続的に変更されます。
MySQL でセルのデータを変更するその他の方法
REPLACE ステートメント:
REPLACE
ステートメントは、既存のレコードを新しいレコードに置き換えるために使用されます。- 主キーが一致するレコードが存在する場合、そのレコードは新しいレコードに置き換えられます。
REPLACE INTO テーブル名 (列名1, 列名2, ...)
VALUES (値1, 値2, ...);
REPLACE INTO 顧客 (顧客ID, 氏名, 住所)
VALUES (1, '山田 太郎', '東京都渋谷区');
INSERT ... SELECT ステートメント:
INSERT ... SELECT
ステートメントは、別のテーブルからデータを抽出して、新しいレコードとして挿入するために使用されます。- 既存のレコードを更新することはできません。
INSERT INTO テーブル名 (列名1, 列名2, ...)
SELECT 列名1, 列名2, ...
FROM 別テーブル名
WHERE 条件;
INSERT INTO 顧客 (顧客ID, 氏名, 住所)
SELECT 社員ID, 氏名, 住所
FROM 社員
WHERE 部署 = '営業部';
LOAD DATA INFILE ステートメント:
LOAD DATA INFILE
ステートメントは、テキストファイルからデータをロードして、テーブルに挿入するために使用されます。
LOAD DATA INFILE 'ファイル名'
INTO TABLE テーブル名
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(列名1, 列名2, ...);
LOAD DATA INFILE '顧客データ.csv'
INTO TABLE 顧客
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(顧客ID, 氏名, 住所);
- 上記の方法を使用する場合は、それぞれのステートメントの構文と注意事項をよく理解してから実行してください。
mysql sql-update