-
●Update : 로우내의 컬럼값을 수정하는 구문이다.
update 테이블명
set 컬럼 = 값, 컬럼 = 값...
where 조건문
----------------------------------------------------------
drop table emp01;
create table emp01
as
select * from emp;
select * from emp01;
-------------------------------------------------------------
--사원들의 부서 번호를 40번으로 변경한다
update emp01
set deptno = 40;
select * from emp01;--사원들의 입사일을 오늘로 변경한다.
update emp01
set hiredate = sysdate;--사원들의 직무를 개발자로 변경한다.
update emp01
set job = 'DEVELOPER';--사원들의 부서번호를 40, 입사일을 오늘, 직무를 개발자로 변경한다.
update emp01
set deptno = 40, hiredate = sysdate, job = 'DEVELOPER';--10번 부서에 근무하고 있는 사원들을 40번 부서로 수정한다.
update emp01
set deptno = 40
where deptno = 10;--SALESMAN들의 입사일을 오늘, COMM을 2000으로 수정한다.
update emp01
set hiredate = sysdate, comm = 2000
where job = 'SALESMAN';--전체 사원의 평균 급여보다 낮은 사원들의 급여를 50%인상한다.
update emp01
set sal = sal * 1.5
where sal < (select avg(sal)
from emp);--MANAGER 사원들의 직무를 DEVELOPER로 변경한다.
update emp01
set job = 'DEVELOPER'
where job = 'MANAGER';--30번 부서에 근무하고 있는 사원들의 급여를 전체 평균 급여로 설정한다.
update emp01
set sal = (select avg(sal) from emp)
where deptno = 30;--BLAKE 밑에서 근무하고 있는 사원들의 부서를 DALLAS 지역의 부서번호로 변경한다.
update emp01
set deptno = (select deptno
from dept
where loc = 'DALLAS')
where mgr = (select empno
from emp01
where ename='BLAKE');-------------------------------------------------
drop table emp01;
create table emp01
as
select * from emp;--------------------------------------------------------
--직무가 CLERK인 사원들의 직무와 급여액을 20번 부서에 근무하고 있는 사원 중
--급여 최고액을 받는 사원의 직무와 급여액으로 변경한다.update emp01
set job = (select job
from emp01
where sal = (select max(sal)
from emp01
where deptno = 20)),
sal = (select max(sal)
from emp01
where deptno = 20)
where job = 'CLERK';밑줄 친 부분을 괄호로 묶어서 하나로 묶어줄 수도 있다.
update emp01
set (job,sal) = (
select job,sal
from emp01
where sal = (select max(sal)
from emp
where deptno= 20)
)
where job = 'CLERK';참조 : 인프런 - 윤재성의 Oracle SQL Database 11g PL/SQL Developer
'oracle' 카테고리의 다른 글
requestScope Bean주입 (0) 2020.09.15 select (join부터) (0) 2020.08.13 select( join전까지) (0) 2020.08.12