OracleDatabaseのデータ更新SQL、「update」文について紹介します。
「update」文は、「insert」、「delete」と同様にDML(Data Manipulation Language )と呼ばれ、データを操作するSQL文になります。
目次
基本構文:update ~ set
update文の基本構文は以下になります。
update <テーブル名>
set
<列名①> = <列①の値>,
<列名②> = <列②の値>,
<列名③> = <列③の値>...
WHERE
<条件>
;
下がサンプルのinsert文になります。
select *
from EMPLOYEE;
EMPNO NAME SALARY
---------- ------------------------- ----------
00001 TARO TANAKA 300000
update EMPLOYEE
set
NAME = 'HANADA YAMADA',
SALARY = 500000
WHERE
EMPNO = '00001'
;
commit;
select *
from EMPLOYEE;
EMPNO NAME SALARY
---------- ------------------------- ----------
00001 HANADA YAMADA 500000
selectで取得した結果で更新:update ~set ~ select
update文の基本構文は以下になります。
update <テーブル名>
set
(<列名①>, <列名②>, <列名③>) = (select <列名①>,
<列名②>,
<列名③>
from <テーブル名>
where <条件>)
WHERE
<条件>
;
下がサンプルのupdate文になります。
select *
from EMPLOYEE;
EMPNO NAME SALARY
---------- ------------------------- ----------
00001 TARO TANAKA 300000
select *
from SUB_EMPLOYEE;
EMPNO NAME SALARY
---------- ------------------------- ----------
00001 ICHIRO SATO 700000
update EMPLOYEE
set
(NAME, SALARY) = (select NAME,
SALARY
from SUB_EMPLOYEE
where EMPNO = '00001'
)
WHERE
EMPNO = '99999'
;
select *
from EMPLOYEE;
EMPNO NAME SALARY
---------- ------------------------- ----------
99999 ICHIRO SATO 700000
[改訂第4版]SQLポケットリファレンスposted with ヨメレバ
朝井 淳 技術評論社 2017-02-18