데이터베이스

데이터조작어 DML - UPDATE

야생늑대 2022. 4. 18. 15:56
반응형

테이블에 저장되어 있는 데이터 내용을 수정할 때 UPDATE문을 사용한다.

 

UPDATE문의 기본사용법

UPDATE 변경할 테이블
SET 변경할 열1 = 데이터, 변경할 열2 = 데이터, ... , 변경할 열 n = 데이터
WHERE 데이터를 변경할 대상행을 선별하기 위한 조건 
--WHERE절을 생략할 경우 지정된 모든 열의 데이터가 변경된다.

데이터 전체수정하기

데이터 전체수정

▶ 위 처럼 테이블에 저장되어 있는 모든 데이터의 특정 열 데이터를 일괄적으로 변경하는 경우는 흔치 않다.

    대부분의 경우에 몇몇 행만 선정하여 데이터를 수정하는 방식을 사용한다.

데이터 일부분만 수정하기

서브쿼리를 사용하여 데이터 수정하기

 

여러 열을 한번에 수정하는 경우

서브쿼리로 여러 열 수정

열 하나하나를 수정하는 경우

서브쿼리로 열 하나하나 수정하는 경우

열을 따로 나눠서 서브쿼리를 사용할 

 

 

 

WHERE절에 서브쿼리를 사용하여 데이터 수정하는 경우

※ UPDATE문도 서브쿼리에 나열한 열과 변경할 열 개수나 자료형은 항상 일치해야 한다.

 


☆★

  • UPDATE문과 DELETE문은 테이블에 이미 존재하는 데이터를 수정하거나 삭제하는 기능을 수행하므로 SELECT문이나 INSERT문에 비해 위험성이 큰 명령어다.
  • 예를 들어 사용자가 적립해 놓은 마일리지나 포인트 또는 계좌 잔액이나 개인 정보 같은 민감한 데이터가 있는 테이블에 잘못된 UPDATE문을 실행한다면 큰 문제가 발생한다.
  • 실제로 실무에서도 UPDATE에 사용하는 WHERE조건식이 정확한 데이터를 대상으로 하는지 꼼꼼히 따져보지 않고 수행한 후 애를 먹는 상황이 종종 발생한다.
  • 이런 상황을 방지하기위해 UPDATE문이나 DELETE문은 실행하기 전에 WHERE절을 검증하는 작업이 반드시 필요하다.(변경해야 하는 행만 정확하게 선정해서 수정하는지 확인) ★☆

 

WHERE절 검증하기

 


 

반응형

'데이터베이스' 카테고리의 다른 글

세션과 읽기 일관성의 의미, LOCK  (0) 2022.04.18
트랜잭션 제어 ROLLBACK, COMMIT  (0) 2022.04.18
데이터조작어 DML - DELETE  (0) 2022.04.18
데이터조작어 DML - INSERT  (0) 2022.04.18
서브쿼리 subquery  (0) 2022.04.17