UPDATE (SQL)
UPDATEステートメントは、SQL におけるデータ操作言語 (DML) のステートメントの1つで、テーブル内の1つもしくは複数のレコードのデータを更新する。WHERE句が省略されている場合はすべてのレコードが、指定されている場合はその条件式を満たす一部のレコードだけが、一括して更新される。 構文UPDATE テーブル名 SET 列名1 = 値1 [,列名2 = 値2...] [WHERE 条件式]; 正常に更新が行われるためには、更新されるテーブルや列に対する更新権限をユーザが持っている必要がある。また、更新後の値がPRIMARY KEY制約、一意性制約、CHECK制約、NOT NULL制約などに違反しないことが必要である。 例基本構文テーブル "t" に対し、列 "c2" の値が a であれば、列 "c1" の値を 1 にセットする。 UPDATE t SET c1 = 1 WHERE c2 = 'a';
テーブル "t" に対し、列 "c2" の値が a であれば、列 "c1" の値に 1 を加算する。 UPDATE t SET c1 = c1 + 1 WHERE c2 = 'a';
1つのUPDATEステートメントで複数列を更新することも可能である。下の例では、テーブル "t" に対し、列 "c1" の値に 1 を、列 "c2" の値に 2 をセットする。 UPDATE test SET c1 = 1, c2 = 2;
結合他のテーブルと結合した結果により更新を行う場合、サブクエリ(副次問い合わせ)を用いる方法と、SELECT ステートメントと類似の結合式を用いる方法がある。以下の例はどちらも、テーブル "t1" に対し、列 "a2" の値が、テーブル "t2" の列 "b1" の値が 0 であるすべてのレコードにおける列 "b2" の値のいずれかと一致すれば、列 "a1" に 2 をセットする。 サブクエリ UPDATE t1
SET a1 = 2
WHERE a2 IN (SELECT b2 FROM t2 WHERE b1 = 0);
結合 UPDATE t1
SET a1 = 2
FROM t2
WHERE t1.a2 = t2.b2 AND t2.b1 = 0;
|
Index:
pl ar de en es fr it arz nl ja pt ceb sv uk vi war zh ru af ast az bg zh-min-nan bn be ca cs cy da et el eo eu fa gl ko hi hr id he ka la lv lt hu mk ms min no nn ce uz kk ro simple sk sl sr sh fi ta tt th tg azb tr ur zh-yue hy my ace als am an hyw ban bjn map-bms ba be-tarask bcl bpy bar bs br cv nv eml hif fo fy ga gd gu hak ha hsb io ig ilo ia ie os is jv kn ht ku ckb ky mrj lb lij li lmo mai mg ml zh-classical mr xmf mzn cdo mn nap new ne frr oc mhr or as pa pnb ps pms nds crh qu sa sah sco sq scn si sd szl su sw tl shn te bug vec vo wa wuu yi yo diq bat-smg zu lad kbd ang smn ab roa-rup frp arc gn av ay bh bi bo bxr cbk-zam co za dag ary se pdc dv dsb myv ext fur gv gag inh ki glk gan guw xal haw rw kbp pam csb kw km kv koi kg gom ks gcr lo lbe ltg lez nia ln jbo lg mt mi tw mwl mdf mnw nqo fj nah na nds-nl nrm nov om pi pag pap pfl pcd krc kaa ksh rm rue sm sat sc trv stq nso sn cu so srn kab roa-tara tet tpi to chr tum tk tyv udm ug vep fiu-vro vls wo xh zea ty ak bm ch ny ee ff got iu ik kl mad cr pih ami pwn pnt dz rmy rn sg st tn ss ti din chy ts kcg ve