概要
SQLite3におけるUpdate文の基本的な使い方。
ちなみにリレーショナルデータベースではデータを書き換えることを
一般的に「変更」ではなく「更新」と言う。
構文
基本文は2種類あるが、どちらも処理は一緒。
update
table_name
set
column_name1 = value1
, column_name2 = value2
, column_name3 = value3 ...
;
もしくは
update
table_name
set (
column_name1
, column_name2
, column_name3 ...
) = (
value1
, value2
, value3 ...
);
実行例
環境
- Windows 10 64bit
- SQLite3 (3.36.0) Command-Line Shell
product_id primary key |
name | quantity |
---|---|---|
1 | tomato | 100 |
2 | potato | 100 |
3 | pumpkin | 50 |
以下は「product」テーブルの「name」と「quantity」を書き換えるSQL。 書き方は2通りあるがどちらも同じ結果になる。
update
product
set
name = 'cassava'
, quantity = 1
;
update
product
set (
name
, quantity
) = (
'cassava'
, 1
);
product_id primary key |
name | quantity |
---|---|---|
1 | cassava | 1 |
2 | cassava | 1 |
3 | cassava | 1 |
条件を指定して更新する
上記の例のままだと、テーブル内全てのデータが更新されてしまう。 特定の行だけを更新する場合は「where」句を使用して条件を指定する。
構文
update
product
set
column_name1 = value1
, column_name2 = value2
, column_name3 = value3 ...
where
column_name4 = value4
and column_name5 = value5
and column_name6 = value6 ...
update
product
set (
column_name1
, column_name2
, column_name3 ...
) = (
value1
, value2
, value3 ...
)
where
column_name4 = value4
and column_name5 = value5
and column_name6 = value6 ...
実行例
product_id primary key |
name | quantity |
---|---|---|
1 | tomato | 100 |
2 | potato | 100 |
3 | pumpkin | 50 |
以下は「product」テーブルの「id」カラムが「1」のレコードを更新するSQL。 書き方は2通りあるがどちらも同じ結果になる。
update
product
set
name = 'cassava'
, quantity = 1
where
id = 1
;
update
product
set (
name
, quantity
) = (
'cassava'
, 1
)
where
id = 1
;
product_id primary key |
name | quantity |
---|---|---|
1 | cassava | 1 |
2 | potato | 100 |
3 | pumpkin | 50 |
参考URL
-
SQLite 公式サイト(英語)
https://www.sqlite.org/index.html -
UPDATE
公式のUPDATEに関するドキュメント
https://www.sqlite.org/lang_update.html