OracleDB

[OracleDB] ”update”文でデータ更新

2018年7月29日

こんにちは!土門大貴(daikidomon)です。

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
 

関連記事

-OracleDB

Copyright© スタートアップIT企業社長のブログ , 2020 All Rights Reserved.