대덕인재/Oracle

[D-5] UPDATE 명령 (더써야함)

꼬마버거 2025. 4. 7. 21:44

 

 

UPDATE 명령은 기존 테이블의 데이터를 수정할 때 사용돼요.

📘 기본 문법

 

✅ 1. UPDATE 기본 구조

UPDATE 테이블명
SET 컬럼1 = 값1,
    컬럼2 = 값2,
    ...
WHERE 조건;

 

구성 요소                   설명

테이블명 데이터를 수정할 대상 테이블
SET 어떤 컬럼을 어떤 값으로 바꿀 것인지 지정
WHERE 수정할 대상 행(row)을 선택 (이거 없으면 전체가 수정됨!)
UPDATE MEMBER
SET MEM_MILEAGE = 5000
WHERE MEM_ID = 'A101';

 

 

  • MEM_ID가 'A101'인 회원의 마일리지를 5000으로 변경

 

✅ 예제 2: 조건에 따라 여러 행 수정

 

UPDATE MEMBER
SET MEM_MILEAGE = MEM_MILEAGE + 1000
WHERE MEM_GRADE = 'VIP';
  • VIP 등급 회원의 마일리지를 1000점씩 증가

⚠️ 주의할 점 ⚠️

  1. WHERE 절을 빼먹으면 전부 바뀜!! 실수 방지용으로 SELECT로 먼저 조건 확인
UPDATE MEMBER
SET MEM_MILEAGE = 0;

모든 회원의 마일리지가 0이 됨 😨

 

2. 실수 방지용으로 SELECT로 먼저 조건 확인

SELECT * FROM MEMBER WHERE MEM_GRADE = 'VIP';

 

 

3.롤백 가능 여부

  • COMMIT 전에 실행했다면 ROLLBACK으로 되돌릴 수 있어요.
ROLLBACK;

 

 

💡 참고: 서브쿼리를 이용한 UPDATE 예시

UPDATE MEMBER
SET MEM_MILEAGE = (
    SELECT AVG(MEM_MILEAGE)
    FROM MEMBER
)
WHERE MEM_GRADE = '일반';

 

  • 일반 회원의 마일리지를 전체 평균으로 맞추는 예제

 

✅ 실무에서 많이 쓰는 패턴

➤ 다른 테이블 참조해서 업데이트

UPDATE MEMBER M
SET MEM_MILEAGE = (
    SELECT MAX(MEM_MILEAGE)
    FROM MEMBER
    WHERE MEM_GRADE = 'VIP'
)
WHERE M.MEM_ID = 'A101';

 

→ VIP 중 최고 마일리지를 A101 회원에게 적용