-
SQL_Sub Query_Update & DeleteData 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