update

  • 로우내의 컬럼 값을 수정하는 구문이다.
  • update 테이블 명
    set 컬럼 = 값, 컬럼 = 값…
    where 조건문

ex)

-- 사원들의 부서 번호를 40번으로 변경한다.
update emp01
set deptno=40;

select * from emp01;

ex)

-- 사원들의 입사일을 오늘로 변경한다.
update emp01
set hiredate = sysdate;

ex)

-- 사원들의 직무를 개발자로 변경한다.
update emp01
set job = '개발자';

여러컬럼 업데이트

ex)

-- 사원들의 부서번호를 40, 입사일을 오늘, 직무를 개발자로 변경한다.
update emp01
set deptno = 40, hiredate = sysdate, job = '개발자';

ex)

-- 10번 부서에 근무하고 있는 사원들을 40번 부서로 수정한다.
update emp01
set deptno = 40
where deptno = 10;

ex)

-- SALESMAN들의 입사일을 오늘, COMM을 2000으로 수정한다.
update emp01
set hiredate = sysdate, comm = 2000
where job = 'SALESMAN';

ex)

-- 전체 사원의 평균 급여보다 낮은 사원들의 급여를 50% 인상한다.
update emp01
set sal = sal *1.5
where sal < (select avg(sal)
            from emp01);

ex)

-- MANAGER 사원들의 직무를 Developer로 변경한다.
update emp01
set job = 'Developer'
where job = 'MANAGER';

ex)

-- 30번 부서에 근무하고 있는 사원들의 급여를 전체 평균 급여로 설정한다.
update emp01
set sal = (select avg(sal)
          from emp01)
where deptno = 30;

ex)

-- BLAKE 밑에서 근무하고 있는 사원들의 부서를 DALLAS지역의 부서번호로 변경
update emp01
set deptno = (select deptno 
              from dept
              where loc = 'DALLAS')
where mgr = (select empno
            from emp
            where ename = 'BLAKE');

ex)

-- 20번 부서에 근무하고 있는 사원들의 직속상관을 KING으로 하고 급여를 전체급여의 최고액으로 설정
update emp01
set mgr = (select empno
          from emp01
          where ename = 'KING'),
    sal = (select max(sal)
          from emp01)
where deptno = 20;

ex)

-- 직무가 CLERK인 사원들의 직무와 급여액을 20번 부서에 근무하고 있는 사원중
-- 급여 최고액을 받는 사원의 직무와 급여액으로 변경한다.
update emp01
set (job, sal) = (select job, sal
                  from emp01
                  where sal = (select max(sal)
                              from emp01))
where job = 'CLERK';

Comment and share

  • page 1 of 1

Hyeon Soo Ahn

author.bio


author.job