[SQL] 086. 서브 쿼리를 사용하여 데이터 수정하기
Updated:
초보자를 위한 SQL 200제 교재를 토대로 공부한 내용입니다.
오라클 SQL을 기반으로 합니다.
실습에 사용한 테이블은 정보문화사 홈페이지에서 받을 수 있습니다.
[예시]
이번 챕터에선 서브 쿼리를 이용해 데이터를 수정해본다.
UPDATE
에서 SET
에 서브 쿼리를 사용한다.
SCOTT의 SAL(월급), COMM(커미션)을 ALLEN의 값으로 수정한다.
-- 기본 옵션으로 사용
-- AUTOCOMMIT 끄기
SET AUTOCOMMIT OFF;
-- 날짜 출력 포맷 변경
ALTER SESSION SET NLS_DATE_FORMAT = 'RRRR-MM-DD';
-- SCOTT의 월급, 커미션을 ALLEN의 값으로 수정
UPDATE EMP
SET (SAL, COMM) = (SELECT SAL, COMM FROM EMP WHERE ENAME = 'ALLEN')
WHERE ENAME = 'SCOTT';
-- 테이블 확인
SELECT *
FROM EMP;
[결과]
SCOTT의 SAL(월급), COMM(커미션)이 ALLEN과 동일하게 수정되었다.
EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |
---|---|---|---|---|---|---|---|
7839 | KING | PRESIDENT | 1981-11-17 | 5000 | 10 | ||
7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850 | 30 | |
7782 | CLARK | MANAGER | 7839 | 1981-05-09 | 2450 | 10 | |
7566 | JONES | MANAGER | 7839 | 1981-04-01 | 2975 | 20 | |
7654 | MARTIN | SALESMAN | 7698 | 1981-09-10 | 1250 | 1400 | 30 |
7499 | ALLEN | SALESMAN | 7698 | 1981-02-11 | 1600 | 300 | 30 |
7844 | TURNER | SALESMAN | 7698 | 1981-08-21 | 1500 | 0 | 30 |
7900 | JAMES | CLERK | 7698 | 1981-12-11 | 950 | 30 | |
7521 | WARD | SALESMAN | 7698 | 1981-02-23 | 1250 | 500 | 30 |
7902 | FORD | ANALYST | 7566 | 1981-12-11 | 3000 | 20 | |
7369 | SMITH | CLERK | 7902 | 1980-12-11 | 800 | 20 | |
7788 | SCOTT | ANALYST | 7566 | 1982-12-22 | 1600 | 300 | 20 |
7876 | ADAMS | CLERK | 7788 | 1983-01-15 | 1100 | 20 | |
7934 | MILLER | CLERK | 7782 | 1982-01-11 | 1300 | 10 |
Leave a comment