Database OracleDB インフラ

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

2018年7月29日

こんにちは!シミダイ(@shimidai2100)です。

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

 

関連記事

-Database, OracleDB, インフラ

Copyright© shimidai2100 , 2020 All Rights Reserved.