데이터 갱신

데이터 갱신 (Updates)

이미 들어 있는 행(row)의 값을 바꿔야 할 때가 있죠. 그럴 때는 UPDATE 명령을 사용해요. 지금부터 입력된 기온 데이터에 문제가 생겼다고 상상해 볼게요 — 11월 28일 이후의 모든 기온 측정값이 2도씩 높게 기록되어 있다고 해봐요.

출처: PostgreSQL 공식 문서 — 2.8. Updates

조건에 맞는 행의 값 수정하기

이 잘못 기록된 데이터를 바로잡으려면 다음과 같이 하면 돼요.

UPDATE weather
    SET temp_hi = temp_hi - 2,  temp_lo = temp_lo - 2
    WHERE date > '1994-11-28';

SET 절에서 수정할 컬럼과 새 값을 지정하고, WHERE 절에서 어느 행을 고칠지 골라요. 여기서는 1994-11-28 이후의 날짜를 가진 모든 행의 최고·최저 기온을 각각 2도씩 빼 주는 거예요.

수정된 데이터의 새 상태를 확인해 볼게요.

SELECT * FROM weather;
     city      | temp_lo | temp_hi | prcp |    date
---------------+---------+---------+------+------------
 San Francisco |      46 |      50 | 0.25 | 1994-11-27
 San Francisco |      41 |      55 |    0 | 1994-11-29
 Hayward       |      35 |      52 |      | 1994-11-29
(3 rows)

1994-11-27(27일) 행은 WHERE date > '1994-11-28' 조건에 걸리지 않아서 그대로 남아 있고, 그 이후 날짜인 두 행만 값이 바뀐 걸 확인할 수 있어요.

주의할 점

UPDATE에서 WHERE 조건을 빼먹으면 테이블의 모든 행이 한꺼번에 수정되니 항상 조심해야 해요. 어떤 행을 고칠지 항상 신중하게 조건을 지정하세요.

더 알아보기 (Learn more)