[Database] 데이터 수정 및 삭제 (UPDATE, DELETE)


데이터 삽입 (INSERT)

  • 주의 사항
    • 수정하는 속성의 속성값은 같은 도메인이어야 한다.
    • 조건에 맞아 선택된 투플은 모든 수정된다.
    • 한번 수정된 데이터는 복구가 안된다.
  • 테이블에 저장된 데이터를 수정하기 위한 SQL명령어 : UPDATE

  • UPDATE 문
    • 테이블에 저장된 투플에서 특정 속성 값을 수정
    • 수정할 대상이 되는 속성과 속성값은 SET 다음에 지정
    • WHERE 절에서 제시된 조건을 만족하는 투플만 수정의 대상
  • 기본형식
UPDATE 테이블이름
SET 속성이름1=1, 속성이름2=2, ...
[ WHERE 조건 ] ;
  • Items 테이블에 있는 모든 제품의 단가(price)가 5% 인상된 경우, 인상된 내용을 반영하시오.
    • 테이블내의 모든 투플에 적용되는 경우, WHERE 절을 사용하지 않는다.
    • 단가(price)를 5% 인상 : price = price * 1.05;
UPDATE items
SET price = price * 1.05;
  • 수정 전 데이터

  • 수정 후 데이터

  • 이름이 ‘이남이’인 고객이 2015-06-01에 구입한 ‘E06’ 제품의 개수를 10개로 수정하시오.

  • Customer 테이블

  • Orders 테이블

  • 조건 만들기

    • 조건1 : date=’2015-06-01’
    • 조건2 : item=’E06’
    • 조건3 : customer IN ( SELECT account FROM customer WHERE name=’이남이’ )
    • 전체 조건 : 조건1 AND 조건2 AND 조건3
UPDATE orders
SET qty = 10
WHERE item='E06' AND date='2015-06-01'
AND customer IN ( SELECT account
FROM customer
WHERE name='이남이' );


데이터 삭제(DELETE)

  • 주의 사항
    • 다른 테이블에서 참조하는 테이블의 투플을 삭제하는 것인 거절될 수 있다.
    • 삭제할 투플을 정확하게 선택할 수 있는 조건을 명시하여야 한다.
    • 선택된 투플은 모두 삭제된다.
    • 선택 조건이 없을 경우, 테이블 내의 모든 투플이 삭제된다.
    • 삭제된 투플은 복구가 안된다.
  • 테이블에 저장된 데이터를 삭제하기 위한 SQL명령어 : DELETE
  • DELETE 문을 사용하여 모든 데이터를 삭제시 테이블 자체는 삭제되지 않는다.
    • DROP TABLE 로 테이블 삭제하는 것과 다름
    • 모든 데이터는 삭제되어도 AUTO_INCREMENT 로 지정된 속성의 현재 값은 변화되지 않음
  • WHERE 절에서 제시한 조건을 만족하는 투플만 선택
  • 테이블로부터 선택한 투플을 삭제
  • WHERE 절을 생략하면 테이블 내의 모든 투플을 삭제
  • 기본형식
DELETE FROM 테이블이름
[ WHERE 조건 ] ;
  • Orders 테이블에서 2015-06-10 일에 주문한 모든 주문을 삭제하시오.
DELETE FROM orders
WHERE date=2015-06-10;
  • 삭제 후

  • DELETE 문을 사용하여 orders 테이블의 모든 데이터를 삭제하시오.

DELETE FROM orders ;