더북(TheBook)

03 | UPDATE문

테이블에 있는 기존 데이터를 수정할 때 사용하는 문장이 UPDATE문이다.

    UPDATE [스키마.]테이블명
    SET 컬럼1 = 변경값1,
        컬럼2 = 변경값2,
    ...
    WHERE 조건;

이미 입력된 데이터를 변경해야 하므로, 변경할 테이블, 컬럼 그리고 변경할 값이 필요하다. UPDATE 다음에 변경할 테이블, SET절에 변경할 컬럼과 값, WHERE절에는 변경할 조건을 기술한다.

입력

    SELECT *
     FROM ex3_1;

결과

    COL1 COL2 COL3
    ------ ----- -----------------------------
    ABC       10 2014/01/27 11:57:38
    DEF       20 2014/01/27 11:57:39
    GHI       10 2014/01/27 12:00:57
    GHI       20
    10        10 2014/01/01 00:00:00

ex3_1테이블의 col2 값을 모두 50으로 변경해 보자.

입력

    UPDATE ex3_1
       SET col2 = 50;

결과

    5개 행 이(가) 업데이트되었습니다.

입력

    SELECT *
      FROM ex5_1;

결과

    COL1 COL2 COL3
    ------ ----- -----------------------------
    ABC       50 2014/01/27 11:57:38
    DEF       50 2014/01/27 11:57:39
    GHI       50 2014/01/27 12:00:57
    GHI       50
    10        50 2014/01/01 00:00:00

WHERE 절에 특정 조건을 넣지 않아서 col2 컬럼 값이 모두 50으로 갱신되었다.

네 번째 로우의 col3 값이 비어 있는데, 이 값을 현재 날짜로 갱신해 보자. 이를 위해서는 네 번째 로우를 검색하는 조건이 필요한데, col3 값이 NULL인 것을 찾으면 된다. 참고로 NULL인 데이터를 찾을 때, 검색 조건에는 반드시 IS NULL(NULL이 아닌 것은 IS NOT NULL)로 비교해야 한다. 오라클이 아닌 다른 DBMS는 IS NULL이 아닌 col3 = ‘ ’ 조건도 사용할 수 있지만 오라클에서는 반드시 IS NULL로 비교해야 한다.

입력

    UPDATE ex3_1
       SET col3 = SYSDATE
     WHERE col3 = '';

결과

    0개 행 이(가) 업데이트되었습니다.

입력

    UPDATE ex3_1
       SET col3 = SYSDATE
     WHERE col3 IS NULL;

결과

    1개 행 이(가) 업데이트되었습니다.
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.