Help us understand the problem. What is going on with this article?

【SQLite3】データの更新 (UPDATE文)

テーブルに格納されているデータを新しい値に更新するには UPDATE 文を使います。

UPDATE テーブル名 SET カラム名1 = 1, カラム名2 = 2, ... WHERE 条件式;

まず更新の対象となるデータをWHERE句の条件式を使って指定します。
条件式に一致するデータが複数の場合は、複数のデータがそれぞれ更新されることになります。
WHEREを省略した場合はテーブルに含まれる全てのデータが更新されます。

次にどの値を更新するのかをカラム名と値で指定します。複数のカラムの値を一度に更新することができます。

次のようなテーブルを作成し、テーブルにはデータを追加してみます。

CREATE TABLE staff (id INTEGER, name TEXT, unit TEXT, flag TEXT);
INSERT INTO staff VALUES(1, 'Yamada', 'Sales', 'Yes');
INSERT INTO staff VALUES(2, 'Honda', 'Office', 'No');
INSERT INTO staff VALUES(3, 'Nakai', 'Office', 'Yes');
INSERT INTO staff VALUES(4, 'Suzuki', 'Tech', 'Yes');
INSERT INTO staff VALUES(5, 'Itou', 'Sales', 'No');
テーブルのデータを見てみる
SELECT * FROM staff;
id          name        unit        flag      
----------  ----------  ----------  ----------
1           Yamada      Sales       Yes       
2           Honda       Office      No        
3           Nakai       Office      Yes       
4           Suzuki      Tech        Yes       
5           Itou        Sales       No       

ひとつのデータを更新

最初にidカラムの値が3のデータのnameカラムの値を変更してみます。

UPDATE staff SET name = 'Nakajima' WHERE id = 3;
SELECT * FROM staff;
id          name        unit        flag      
----------  ----------  ----------  ----------
1           Yamada      Sales       Yes       
2           Honda       Office      No        
3           Nakajima    Office      Yes       
4           Suzuki      Tech        Yes       
5           Itou        Sales       No        

複数のデータを一度に更新

unitカラムの値が'Office'のデータについて、unitカラムの値を'Desk'に変更して確認してみます。

UPDATE staff SET unit = 'Desk' WHERE unit = 'Office';
SELECT * FROM staff;
id          name        unit        flag      
----------  ----------  ----------  ----------
1           Yamada      Sales       Yes       
2           Honda       Desk        No        
3           Nakajima    Desk        Yes       
4           Suzuki      Tech        Yes       
5           Itou        Sales       No        

全てのデータを一度に更新

flagカラムの値を'unknown'に変更して、確認してみます。

UPDATE staff SET flag = 'unKnown';
SELECT * FROM staff;
id          name        unit        flag      
----------  ----------  ----------  ----------
1           Yamada      Sales       unKnown   
2           Honda       Desk        unKnown   
3           Nakajima    Desk        unKnown   
4           Suzuki      Tech        unKnown   
5           Itou        Sales       unKnown   

本記事目次ページ

【データベース】SQLite3・JDBCまとめ

参考サイト

tsweblabo
はじめまして。t's Web Laboと申します。 昨年新しい環境での生活が始まり、多くの方のサポートのおかげでようやく環境が整ってきました。 とはいえ知識や技術面の足りない部分が多く、日々勉強の必要性を感じています。 プログラミング関連で興味を持ったこと、勉強したことを備忘録の意味も込めてQiitaで発信していきます。 2020.06.03
https://tsweblabo.github.io/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away