티스토리 뷰
SQL의 DELETE 문은 지정된 조건에 따라 테이블에서 레코드(행)를 제거하는 데 사용됩니다.
한 번에 또는 특정 기준에 따라 선택적으로 테이블에서 하나 이상의 행을 삭제할 수 있습니다. 기본 구문은 다음과 같습니다.
DELETE FROM table_name
WHERE condition;
이 구문에서는:
- DELETE FROM은 테이블에서 데이터를 삭제함을 나타내는 키워드입니다.
- table_name은 데이터를 삭제하려는 테이블의 이름입니다.
- 'WHERE 조건'은 삭제할 행을 결정하는 조건을 지정합니다. *생략하면 테이블의 모든 행이 삭제됩니다.
설명하기 위한 예는 다음과 같습니다.
id, first_name, last_name 및 department 열이 있는 employees라는 테이블이 있다고 가정해 보겠습니다.
'IT' 부서에 근무하는 직원의 모든 기록을 삭제하고 싶습니다.
DELETE FROM employees
WHERE department = 'IT';
이 쿼리는 department가 'IT'인 employees 테이블에서 모든 레코드를 삭제합니다.
DELETE 문을 사용하는 방법은 다양합니다.
- 단일 레코드 삭제: WHERE 절에 고유 식별자를 지정하여 테이블에서 단일 레코드를 삭제할 수 있습니다.
- 여러 레코드 삭제: 여러 행과 일치하는 조건을 지정하여 테이블에서 여러 레코드를 삭제할 수 있습니다.
DELETE FROM employees
WHERE department = 'HR';
- 테이블 자르기: TRUNCATE TABLE 문을 사용하면 조건을 지정하지 않고 테이블의 모든 레코드를 삭제할 수 있습니다. 이 작업은 각 행에 대해 개별 삭제 문을 생성하지 않기 때문에 큰 테이블에 대해 DELETE를 사용하는 것보다 빠릅니다.
TRUNCATE TABLE employees;
DELETE 문을 작성할 때 다음 사항에 유의하세요.
- WHERE 절: 의도한 행을 삭제하려면 WHERE 절을 사용할 때 주의하세요. WHERE 절이 없으면 테이블의 모든 행이 삭제되어 데이터가 손실될 수 있습니다.
- 트랜잭션 관리: 데이터 일관성과 원자성을 보장하기 위해 여러 행을 삭제할 때 트랜잭션 사용을 고려하세요. 삭제 프로세스 중에 오류가 발생하면 트랜잭션을 롤백합니다.
- 데이터 백업: 대규모 삭제 작업을 수행하기 전에 우발적인 데이터 손실을 방지하기 위해 데이터를 백업하는 것이 좋습니다.
- 연속 삭제: 연속 삭제를 유발할 수 있는 외래 키 제약 조건에 유의하세요. 계단식 삭제가 활성화된 경우 상위 테이블에서 행을 삭제하면 하위 테이블의 관련 행도 삭제될 수 있습니다.
※ 이러한 예방 조치를 따르면 DELETE 문을 안전하고 효과적으로 사용하여 데이터 손실이나 의도하지 않은 결과의 위험을 최소화하면서 데이터베이스에서 데이터를 제거할 수 있습니다.
반응형