반응형

앞선 Select, Insert, Update에 이은 Delete에 대해 알아보겠습니다.

해당 SQL은 말 그대로 데이터를 삭제하는 역할을 하는데요.

 

데이터의 삭제는 항상 신중해야 하므로 

실무에서의 사용은 한상 유의해 주시기 바랍니다.

 

기본구조

DELETE FROM [테이블] 
WHERE [필드][조건][데이터]

Delete문의 기본 구조는 위와 같습니다.

 

특정 테이블에 특정 필드의 조건이 만족하는

데이터를 지우는게 Delete문의 역할입니다.

 

Sql 예제

EMP 테이블의 인턴사원의 기간이 만료되고

내년에 정식 입사하게 되어 EMP테이블에서 삭제해야 합니다.

 

JOB이 INTERN인 직원 명단인데요.

위의 데이터를 삭제해 보겠습니다.

  DELETE FROM EMP
  WHERE JOB = 'INTERN';

 

Delete문에 의해 2개의 데이터가 사라진 모습니다.

 

주의할 점은 만약 Delete문에 WHERE조건이 없다면

조건이 없기 때문에 해당 테이블에 모든 데이터가 삭제됩니다.

 

그러니 Delete문은 Commit 하기 전에 신중해야 합니다.

 

Truncate 활용

앞서 Delete문에 Where 조건을 누락하면 

모든 데이터가 지워진다고 하였는데요.

 

이런 비슷한 역할을 하는 것이 바로 Truncate  명령어입니다.

 

TRUNCATE TABLE [테이블]

위와 같이 사용하면

테이블 내의 모든 데이터가 삭제되게 됩니다.

 

Delete 문과 별다른 차이점이 없는데 

왜 2개의 명령어가 공존하는 것일까요?

 

Delete문과 Truncate 차이

기능 Delete문 Truncate문
테이블 Space 변화 X 초기화(줄어듬)
특정 데이터 삭제 조건에 따라 특정 데이터만 삭제 가능 테이블 내, 모든 데이터 삭제
SQL 종류 DML DDL
수행 속도 느림 빠름
TRANSACTION 처리 Commit, Rollback 가능 Commit, Rollback 불가능

위의 표가 바로 두 개의 명령어의 차이점을 나타낸 것인데요.

 

종합해 보면 Delete문은 테이블 내의 데이터를 단순 지우는 기능이고

Truncate는 테이블 내의 공간을 삭제하여 데이터를 지우는 것이라 볼 수 있습니다.

반응형

+ Recent posts