ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Update
    oracle 2020. 8. 27. 12:06

    ●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

    댓글

Designed by Tistory.