개발 지식/[DBMS] Oracle

[Oracle] DML(6) - 서브쿼리를 활용한 UPDATE

devGSP 2022. 6. 11. 08:00
반응형
이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다.

Java(TM) 플랫폼 : 1.8.0_321
Oracle IDE : 4.1.5.21.78

 

서브쿼리를 활용한 UPDATE

 

아래 테이블이 없다면 여기를 클릭하여 테이블을 생성하고 돌아오자.

SELECT * FROM TB_DEPT2;

 

(1) 서브쿼리를 활용한 단일열 UPDATE

 

예시

UPDATE TB_DEPT2
   SET DNAME = (SELECT DNAME
                  FROM DEPT
                 WHERE DEPTNO = 30)
     , LOC   = (SELECT LOC
                  FROM DEPT
                 WHERE DEPTNO = 20)
 WHERE DEPTNO = 10;
 
 SELECT * FROM TB_DEPT2; -- 결과 확인

 

결과

dml6_q1

 

 

(2) 서브쿼리를 활용한 다중열 UPDATE

 

예시

UPDATE TB_DEPT2
   SET (DNAME, LOC) = (SELECT DNAME, LOC
                         FROM DEPT
                        WHERE DEPTNO = 10)
 WHERE DEPTNO = 20;
 
 SELECT * FROM TB_DEPT2; -- 결과 확인

 

결과

dml6_q2

 

 

(3) WHERE절에 서브쿼리를 사용한 UPDATE

 

예시

UPDATE TB_DEPT2
   SET LOC = 'INCHEON'
 WHERE DEPTNO = (SELECT DEPTNO
                   FROM TB_DEPT2
                  WHERE LOC = 'SEOUL')
   AND DNAME = 'SALES';
 
 SELECT * FROM TB_DEPT2; -- 결과 확인

 

결과

dml6_q3

 

반응형