본문 바로가기
오라클

[오라클] UPDATE 문법 완벽 정리 (예제 + 주의 사항)

by devlog93 2026. 1. 1.

UPDATE란?

UPDATE는 테이블에 저장된 기존 데이터를 수정할 때 사용하는 DML 문이다. 잘못 사용하면 대량 데이터가 한 번에 변경될 수 있기 때문에 SELECT보다 훨씬 더 주의가 필요한 문법이다.


1. UPDATE 기본 개념

  • 테이블에 이미 존재하는 데이터를 수정
  • SET 절에서 변경할 컬럼과 값을 지정
  • WHERE 절이 없으면 모든 행이 변경됨 (매우 위험)
UPDATE 테이블명
   SET 컬럼명 = 값;

 


예제용 테이블 EMP

EMPNO ENAME DEPTNO SAL JOB
1001 KIM 10 3000 CLERK
1002 LEE 20 4000 MANAGER
1003 PARK 10 2000 CLERK
1004 CHOI 30 3500 ANALYST

 


2. 특정 컬럼 값 수정 (기본 UPDATE)

※ 급여(SAL) 수정

UPDATE EMP
   SET SAL = 3500
 WHERE EMPNO = 1001;

◆ 실행 결과 → WHERE로 수정 대상 명확히 지정

EMPNO ENAME DEPTNO SAL JOB
1001 KIM 10 3500 CLERK

3. WHERE 절 없는 UPDATE (매우 위험★)

  • 모든 직원의 급여가 3000으로 변경
  • 실무에서 가장 많이 발생하는 사고
UPDATE EMP
   SET SAL = 3000;

 


4. 여러 컬럼 동시에 수정하기

더보기
더보기

√  SET 절에서 콤마(,)로 여러 컬럼 지정 가능

UPDATE EMP
   SET SAL = 3000
     , JOB = 'SENIOR'
 WHERE EMPNO = 1002;

 


5. NULL 값으로 수정하기

더보기
더보기

√ 컬럼 값을 NULL로 초기화 가능

UPDATE EMP
   SET JOB = NULL
 WHERE EMPNO = 1004;

 


6. 서브 쿼리를 이용한 UPDATE

더보기
더보기

√ 서브 쿼리는 하나의 값만 반환해야 함

UPDATE EMP
   SET SAL = (
              SELECT AVG(SAL)
                FROM EMP
             )
 WHERE DEPTNO = 30;

 

잘못된 예 (다중 행 반환)

더보기
더보기

에러 발생 ORA-01427: single-row subquery returns more than one row

UPDATE EMP
   SET SAL = (
              SELECT SAL
                FROM EMP
               WHERE DEPTNO = 10
             );

 


7. UPDATE 실행 순서

  1. WHERE 조건 검색
  2. 대상 행 결정
  3. SET 값 적용
  4. 변경 완료.

8. COMMIT / ROLLBACK 개념 필수

COMMIT;   -- 변경 확정
ROLLBACK; -- 변경 취소

 


마무리

UPDATE 문은 데이터베이스에서 기존 데이터를 직접 변경하는 매우 강력한 문법이다. 그만큼 편리하지만 작은 실수 하나로 대량 데이터가 한 번에 변경될 수 있는 위험성도 함께 가지고 있다. 예제와 같이 WHERE 절을 사용해서 수정 대상을 명확히 하자. WHERE절을 사용하지 않을 경우도 있지만 혹시 모를 상황에 대비해 SELECT(확인하는 습관)로 검색을 한 뒤에 UPDATE를 하도록 하자. 다음 글로는 DELETE 문법과 MERGE 문에 대해 작성해 보려 합니다. 감사합니다. (_ _)