참치코더의 꿈 메모장

2021/08/15 Oracle - 테이블에 있는 데이터 수정하기 본문

Oracle

2021/08/15 Oracle - 테이블에 있는 데이터 수정하기

참치깡 2021. 8. 15. 17:04
728x90

오라클에서는 특정 테이블에 저장되어 있는 데이터 내용을 수정할 때 UPDATE문을 사용한다.

 

UPDATE문의 기본 사용법 

 

UPDATE [변경할 테이블]

SET       [변경할 열1]=[데이터], [변경할 열2]=[데이터], ..., [변경할 열n]=[데이터]

[WHERE 데이터를 변경할 대상 행을 선별하기 위한 조건];

 

UPDATE : 데이터를 수정할 테이블을 지정한다.

SET  : 변경할 열을 선택하고 변경할 데이터를 입력한다.

WHERE :  테이블의 변경할 데이터 선별 조건식을 지정한다. 

 

데이터 전체 수정하기

 

테이블의 어떤 한 행의 전체 데이터를 바꾸고 싶다면 WHERE절을 생략하고 열의 데이터 값을 바꾸면

전체 데이터가 변경된다.

 

수정한 내용을 되돌리고 싶을 때 

 

실수로 UPDATE문을 실행했을 때 UPDATE문 실행을 취소하기 위해 ROLLBACK 명령문을 사용할 수 있다.

 

ROLLBACK은 INSERT, UPDATE, DELETE의 실행을 취소하는 명령어이다. 

 

데이터 일부분만 수정하기

 

데이터의 일부만을 수정하기 위해서 수정 대상 행을 선별하기 위한 WHERE절과 조건식을 사용해야 한다.

 

서브쿼리를 사용하여 데이터 수정하기

 

여러 열을 한번에 수정하는 경우

 

UPDATE DEPT_TEMP2
SET (DNAME, LOC) = (SELECT DNAME, LOC
                               FROM DEPT
                             WHERE DEPTNO = 40)
WHERE DEPTNO = 40;

 

열 하나하나를 수정하는 경우

 

열 하나하나에 서브쿼리를 적용하는 것도 가능하다.

 

UPDATE DEPT_TEMP2
   SET DNAME = (SELECT DNAME
                         FROM DEPT
                       WHERE DEPTNO = 40),
        LOC = (SELECT LOC
                   FROM DEPT
                 WHERE DEPTNO = 40)
WHERE DEPTNO = 40;

 

* 변경 열의 개수에 따라 서브쿼리에서 지정한 열 개수도 변한다. 

 

WHERE절에 서브쿼리를 사용하여 데이터를 수정하는 경우 

 

UPDATE DEPT_TEMP2
   SET LOC = 'SEOUL'
 WHERE DEPTNO = (SELECT DEPTNO
                             FROM DEPT_TEMP2
                            WHERE DNAME = 'OPERATIONS');

 

UPDATE문 사용할 때 유의점

 

UPDATE문은 데이터를 검색하는 SELECT 문이나 데이터를 삽입하는 INSERT 문과 달리 사용자가 입력하거나

실제 중요한 정보가 들어있을수 있는 테이블을 직접적으로 데이터를 바꾸는 작업을 하기 때문에 

 UPDATE문의 WHERE절을 검증하는 작업이 반드시 필요하다.

 

 

728x90
Comments