ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL_Sub Query_Update & Delete
    Data Base_Oracle/SQL 2020. 1. 8. 23:13

    Sub Query _ DML에서 활용

    여기서는 UPDATE와 DELETE만 다룰 예정입니다.

    UPDATE

    § 형식

    [ SQL> update 수정table명 set 필드명 = 수정할 값, 필드명2 = 수정할 값2,,,; ]
    ※ 필드 내의 모든 값이 수정되기 때문에 잘 쓰이지 않는 방식

     

    [ SQL> update 수정table명
    set 필드명 = 수정할 값, 필드명2 = 수정할 값2,,, where 조건식; ]

     

    [ SQL> update 수정table명
    set (필드명, 필드명2,,,) = (수정할 값, 수정할 값2,,,) where 조건식; ]

    ※ 수정할 값을 서브 쿼리를 이용해서 검색

    # 예제

    { 문제 }
    ▷ b_emp3 테이블에서 SCOTT의 업무와 급여가 일치하도록 JONES의 업무와 급여를 수정
    [ SQL> select job, sal from b_emp3 where ename='JONES';]

    JOB SAL
    MANAGER 2975

    { 풀이 }
    ▶ [ SQL> update b_emp3 set
    (job, sal) = (select job, sal from b_emp3 where ename='SCOTT')
    where ename='JONES';
    1 행이 갱신되었습니다.
    select job, sal from b_emp3 where ename='JONES' ]

    JOB SAL
    ANALYST 3000

    DELETE

    § 형식

    [ SQL> delete from table명; ]
    ※ 모든 데이터 삭제, 데이터 삭제 전에는 항상 백업을 받고 확인해야 함

     

    [ SQL> delete from table명 where 조건식; ]

    ※ 조건식에 Sub Query를 사용

    # 예제

    { 문제 }
    ▷ b_emp3 테이블에서 부서명이 'SALES'인 부서번호를 갖고 있는 사원의 정보를 삭제

    ▶ [SQL> delete from b_emp3
    where deptno=(select deptno from dept where dname='SALES');
    6 행이 삭제되었습니다.
    select count(*) from b_emp3; ]

    COUNT( * )
    8

    ※ 총 14명의 직원 중 6명의 레코드가 삭제된 결과


    UPDATE와 DELETE에서 서브 쿼리를 활용하는 방법을 살펴보았습니다.

    두 구문 모두 신중하게 다루어야 하기 때문에 서브 쿼리를 사용한다면 조금 더 정확한

    조건식을 작성할 수 있을 것입니다.

    'Data Base_Oracle > SQL' 카테고리의 다른 글

    SQL 집합 연산자  (0) 2020.01.08
    SQL_ROLLBACK  (0) 2020.01.08
    SQL_Sub Query_Table 만들기  (0) 2020.01.07
    SQL_Sub Query Pattern_Inline View  (0) 2020.01.07
    SQL 다중 행 Sub Query_EXISTS 연산자  (0) 2020.01.07

    댓글

Designed by Tistory.