본문 바로가기
프로그래밍/MySQL

📊 [SQL] 제36장 UPDATE - 저장된 데이터를 수정할 수 있을까요?

by 강릉바다의 블로그 2026. 7. 13.

제36장. UPDATE (1)

"저장된 데이터를 수정할 수 있을까요?"


학습 목표

이번 장을 학습하면 다음 내용을 할 수 있습니다.

  • UPDATE 문의 역할을 설명할 수 있다.
  • 하나의 데이터를 수정하는 SQL을 작성할 수 있다.
  • WHERE 절과 함께 UPDATE를 사용할 수 있다.
  • UPDATE를 사용할 때 주의할 점을 설명할 수 있다.

지난 시간을 떠올려 봅시다.

지금까지 우리는

새로운 데이터를 추가하는 방법을 배웠습니다.

INSERT INTO Customers
(
    CustomerName,
    Country
)
VALUES
(
    '홍길동',
    'Korea'
);

그런데 데이터는

한 번 저장하면

영원히 그대로일까요?

그렇지 않습니다.

주소가 바뀌기도 하고,

전화번호가 바뀌기도 하고,

상품 가격이 변경되기도 합니다.

이처럼

이미 저장된 데이터를 수정하는 명령이

바로 UPDATE입니다.


실생활에서 생각해 보기

학교에서는

학생이 전학을 가거나

전화번호를 변경하는 일이 있습니다.

쇼핑몰에서는

상품 가격을 인상하거나

재고 정보를 수정하기도 합니다.

이럴 때

기존 데이터를 삭제한 후 다시 입력하는 것은

매우 비효율적입니다.

필요한 부분만 수정하면 됩니다.


가장 기본적인 문법

UPDATE 테이블이름
SET 컬럼이름 = 값
WHERE 조건;

가장 중요한 것은

어떤 데이터를 수정할 것인지

WHERE 절로 지정하는 것입니다.


예제 1

CustomerID가 1인 고객의

국가를 Germany로 수정해 보겠습니다.

UPDATE Customers
SET Country = 'Germany'
WHERE CustomerID = 1;

실행 전

CustomerID CustomerName Country
1 Alfreds Futterkiste Germany
2 Ana Trujillo Mexico

 

예를 들어

Country가 France였다고 가정하면

실행 후에는 Germany가 됩니다.


SQL를 한 줄씩 살펴보기

UPDATE Customers

Customers 테이블을 수정합니다.


SET Country = 'Germany'

Country 컬럼의 값을

Germany로 변경합니다.


WHERE CustomerID = 1;

CustomerID가 1인 고객만 수정합니다.


그림으로 이해하기

Customers
↓
CustomerID = 1 찾기
↓
Country 수정
↓
저장 완료

새로운 행을 만드는 것이 아니라

기존 행의 일부 내용을 바꾸는 것입니다.


여러 컬럼도 함께 수정할 수 있습니다.

한 번의 UPDATE로

여러 컬럼을 동시에 수정할 수 있습니다.

UPDATE Customers
SET
    CustomerName = '홍길동',
    Country = 'Korea'
WHERE CustomerID = 100;

쉼표(,)를 사용하여

여러 컬럼을 나열합니다.


실제 업무에서는?

UPDATE는

매우 자주 사용됩니다.

예를 들면

  • 회원 주소 변경
  • 상품 가격 변경
  • 재고 수량 수정
  • 주문 상태 변경
  • 학생 연락처 수정

등이 모두 UPDATE입니다.

하루에도 수천 번,

수만 번 실행되는 SQL입니다.


많이 하는 실수

실수 ①

WHERE 절을 작성하지 않는다.

UPDATE Customers
SET Country = 'Korea';

이 SQL은

모든 고객의 국가를 Korea로 변경합니다.

실무에서는

가장 위험한 실수 가운데 하나입니다.


실수 ②

조건을 잘못 작성한다.

WHERE CustomerID = 10

이라고 생각했는데

실제로 수정해야 할 고객은

11번이었다면

엉뚱한 데이터가 수정됩니다.


실수 ③

문자열에 작은따옴표를 사용하지 않는다.

Germany

'Germany'


실무 습관

UPDATE를 실행하기 전에 같은 조건으로 SELECT를 먼저 실행해 보세요.

 

예를 들어

SELECT *
FROM Customers
WHERE CustomerID = 1;

결과가

정말 수정하려는 데이터인지 확인한 후

다음 SQL을 실행합니다.

UPDATE Customers
SET Country = 'Germany'
WHERE CustomerID = 1;

실무에서는

이 과정을 습관처럼 반복합니다.


한눈에 정리

목적 SQL
데이터 추가 INSERT
데이터 수정 UPDATE

이번 장 핵심 정리

✅ UPDATE는 기존 데이터를 수정하는 명령이다.

✅ 수정할 값은 SET으로 지정한다.

✅ 수정할 대상을 WHERE로 선택한다.

✅ UPDATE 전에 SELECT로 확인하는 습관이 중요하다.


연습 문제

기본 문제

① CustomerID가 5인 고객의 Country를 USA로 수정하시오.

② ProductID가 10인 상품의 Price를 25로 수정하시오.


응용 문제

① CustomerID가 20인 고객의 이름과 국가를 함께 수정하시오.

② EmployeeID가 3인 직원의 성(last name)을 변경하는 SQL을 작성하시오.


도전 문제

다음 SQL의 문제점을 설명하고 수정하시오.

UPDATE Customers
SET Country = 'Korea';

정답

기본 문제

UPDATE Customers
SET Country = 'USA'
WHERE CustomerID = 5;
UPDATE Products
SET Price = 25
WHERE ProductID = 10;

💡 실무 이야기

실무에서는 UPDATE보다 더 중요한 것이 "무엇을 수정할지 정확히 선택하는 것"입니다.

예를 들어 온라인 쇼핑몰에서 상품 하나의 가격만 변경하려 했는데, WHERE 절을 빠뜨리면 모든 상품의 가격이 같은 값으로 바뀔 수 있습니다. 이러한 실수는 실제 서비스 장애로 이어질 수도 있습니다.

그래서 많은 개발자는 UPDATE 문을 작성할 때 다음 순서를 습관처럼 지킵니다.

  1. SELECT로 수정 대상 확인
  2. UPDATE 작성
  3. 영향을 받은 행(Row)의 개수 확인

이 습관만 잘 지켜도 대부분의 UPDATE 사고를 예방할 수 있습니다.


✨ 다음 장 예고

다음 장에서는 여러 행을 한 번에 수정하는 UPDATE를 배워 보겠습니다.

예를 들어

  • 독일(Germany) 고객의 국가명을 한 번에 변경하기
  • 가격이 일정 금액 이하인 모든 상품의 가격을 일괄 인상하기
  • 조건에 맞는 여러 데이터를 동시에 수정하기

와 같이 UPDATE와 WHERE를 더욱 다양하게 활용하는 방법을 익히게 됩니다.