본문 바로가기
Web Programing/DB

Oracle 테이블의 데이터만 삭제하는 방법, 행 삭제 (DELETE, TRUNCATE)

by 기록하는 초보 2024. 3. 25.
반응형

데이터베이스에서 테이블의 데이터를 삭제하는 방법은 주로 DELETE와 TRUNCATE 명령어를 사용합니다. 이 두 명령어는 데이터만 삭제하고 테이블의 구조는 유지합니다. 이번 글에서는 각 명령어를 사용하는 방법과 특징에 대해서 알아보겠습니다.

 

하나의 행을 삭제하는 방법

DELETE 명령어 사용하기

WHERE 절을 사용하여 특정 조건에 맞는 데이터만 삭제할 수 있습니다. 행 단위로 데이터가 삭제됩니다.

 

기본 형식

DELETE FROM 테이블명 WHERE 조건;

 

예시

member 테이블에서 name이 '유재석'인 데이터를 삭제하는 방법

DELETE FROM member WHERE name LIKE '유재석';

 

member 테이블에서 name이 '유'로 시작하는 데이터를 삭제하는 방법

DELETE TABLE member WHERE name LIKE '유%';
반응형

 

테이블의 모든 데이터를 삭제하는 방법

TRINCATE 명령어 사용하기

where 절을 사용할 수 없으며, 테이블의 모든 행 데이터를 삭제합니다. DELETE보다 빠르게 작동하며, 테이블 구조는 유지됩니다.

TRUNCATE TABLE 테이블명;

 

DELETE 명령어 사용하기

DELETE FROM 테이블명;

 

DELETE와 TRUNCATE 차이점

TRUNCATE 명령어

데이터를 정의하는 DDL(Data Definition Language)로 데이터를 정의에 해당하는 명령어로 테이블과 같은 데이터의 구조를 정의하는데 사용합니다.

  • 테이블의 모든 데이터를 빠르게 삭제합니다.
  • WHERE 절을 사용할 수 없습니다.
  • 테이블의 구조와 인덱스는 유지되지만, 데이터만 빠르게 삭제됩니다.
  • 트랜젝션 로그를 최소화하여 빠른 성능을 제공합니다.
  • 롤백이 불가능한 경우가 많습니다.

 

DELETE 명령어

데이터를 조작하는 DML(Date Manipulation Language)로 데이터 조작어에 해당하는 명령어로 데이터를 삭제할 때 사용됩니다.

  • 특정 조건에 맞는 데이터 또는 모든 데이터를 삭제할 수 있습니다.
  • WHERE 절을 사용하여 조건을 지정할 수 있습니다.
  • 트랜잭션의 일부로 실행되며, 롤백이 가능합니다.
  • 데이터를 삭제할 때마다 테이블의 로그를 기록합니다.

 

데이터를 삭제할 때는 DELETE와 TRUNCATE 명령어 중 상황에 맞는 명령어를 사용해야 합니다. 특정 조건에 맞는 데이터만 삭제하고 싶다면 DELETE 명령어를 사용할 수 있고, 테이블의 모든 데이터를 삭제하고 싶다면 TRUNCATE 명령어도 사용할 수 있습니다.

반응형