데이터 삭제

완료됨

INSERT 문이 항상 전체 행을 테이블에 추가하는 것과 마찬가지로 DELETE 문은 항상 전체 행을 제거합니다.

DELETE를 사용하여 특정 행을 제거

DELETE는 WHERE 절의 조건에 의해 정의되거나 조인에 정의되는 행 집합에서 작동합니다. DELETE 문 내 WHERE 절의 구조는 SELECT 문 내 WHERE 절의 구조와 동일합니다.

참고

해당하는 WHERE 절이 없는 DELETE는 테이블에서 모든 행을 제거한다는 점에 유의해야 합니다. DELETE 문은 주의해서 사용해야 합니다.

다음 코드에서는 DELETE 문의 기본 구문을 보여 줍니다.

DELETE [FROM] <TableName>
WHERE <search_conditions>;

다음 예에서는 DELETE 문을 사용하여 지정된 테이블에서 중단된 모든 제품을 제거합니다. 테이블에 ‘중단됨’이라는 열이 있고 더 이상 판매하지 않는 제품의 경우 열 값은 1입니다.

DELETE FROM Production.Product
WHERE discontinued = 1;

TRUNCATE TABLE을 사용하여 모든 행을 제거하세요.

WHERE 절이 없는 DELETE는 테이블에서 모든 행을 제거합니다. 따라서 DELETE는 일반적으로 WHERE 절에서 필터와 함께 조건부로 사용됩니다. 모든 행을 제거하고 빈 테이블을 유지하려는 경우 TRUNCATE TABLE 문을 사용할 수 있습니다. 이 문은 WHERE 절을 허용하지 않으며 한 번의 작업으로 항상 모든 행을 제거합니다. 예를 들면 다음과 같습니다.

TRUNCATE TABLE Sales.Sample;

모든 행을 제거하려는 경우 DELETE보다 TRUNCATE TABLE이 더 효율적입니다.