Previous: 既にあるデータを更新する update
Up: 既にあるデータを更新する update
Previous Page: 既にあるデータを更新する update
updateの一般的な形は、次のようなものである。
update テーブル名 set 項目名 = 式 [ , 項目名 = 式 , .... ] [ where 更新条件 ]
今、次のような内容を持つ、「利用者台帳稚内編」というテーブルがあるとしよう。
select * from 利用者台帳稚内編コード 姓 名 電話番号 郵便 住所 -------- ------ -------- -------------- ----- ---------------------- 999999 丸山 不二夫 0162-33-8177 097 稚内市富岡5-9-1 999998 雪田 修一 null null 稚内市富岡2-3-6 999997 null 龍男 null 097 null 999996 北星 null null null 稚内市若葉台 999995 姫宮 利融 null null null
このテーブルをupdateを用いて更新してみよう。
update 利用者台帳稚内編 set 郵便 = "097"
where句無しでupdateを行った時、指定された項目はテーブル中のすべての行で、更新 される。この例では、テーブルの内容は、次の様に更新される。項目「郵便」の所に すべて'097'がいれられていることに、注目して欲しい。
select * from 利用者台帳稚内編コード 姓 名 電話番号 郵便 住所 -------- ------ -------- -------------- ----- ---------------------- 999999 丸山 不二夫 0162-33-8177 097 稚内市富岡5-9-1 999998 雪田 修一 null 097 稚内市富岡2-3-6 999997 null 龍男 null 097 null 999996 北星 null null 097 稚内市若葉台 999995 姫宮 利融 null 097 null
update 利用者台帳稚内編 set 電話番号 = "0162-32-2360" where コード = "999998"
この時、テーブルの内容は、where句で指定された行の、指定された項目だけが更新さ れて、次のように変わる。
select * from 利用者台帳稚内編コード 姓 名 電話番号 郵便 住所 -------- ------ -------- -------------- ----- ---------------------- 999999 丸山 不二夫 0162-33-8177 097 稚内市富岡5-9-1 999998 雪田 修一 0162-32-2360 097 稚内市富岡2-3-6 999997 null 龍男 null 097 null 999996 北星 null null 097 稚内市若葉台 999995 姫宮 利融 null 097 null
set句には、次のように複数の項目を指定することができる。
update 利用者台帳稚内編 set 姓 = "植田",電話番号 = "0162-32-1234",住所 = "稚内市富岡1-2-3" where コード = "999997"update 利用者台帳稚内編 set 電話番号 = "0162-34-2340",住所 = "稚内市富岡2-3-4" where コード = "999995"
こうした時、テーブルの内容は次のように変わる。
select * from 利用者台帳稚内編コード 姓 名 電話番号 郵便 住所 -------- ------ -------- -------------- ----- ---------------------- 999999 丸山 不二夫 0162-33-8177 097 稚内市富岡5-9-1 999998 雪田 修一 0162-32-2360 097 稚内市富岡2-3-6 999997 植田 龍男 0162-32-1234 097 稚内市富岡1-2-3 999996 北星 null null 097 稚内市若葉台 999995 姫宮 利融 0162-34-2340 097 稚内市富岡2-3-4
where句に、さまざまな更新条件を置くことが出来る。基本的には、既に見たselectの where句の使い方と同じであるので、内部にselect文を含むような、複雑な更新条件を 考えることが出来る。ここでは、すこし単純な更新条件を持つupdateの例を見てみよ う。
update 利用者台帳稚内編 set 郵便 = "098-45" where 住所 like "稚内市サラキトマナイ%"update 利用者台帳稚内編 set 郵便 = "098-66" where 住所 like "稚内市ナイポポチ%"
ここでは、いくつかの住所の郵便番号が、更新されている。この命令では、更新条件に 合致する複数行が、更新されることに注意されたい。(もしも、この条件に合致する行 が存在しなければ、行の更新は行われない。)
maruyama@wakhok.ac.jp