DELETE문을 사용하여 테이블에서 행 제거

표에서 행을 제거하려면 DELETE문을 사용하십시오.

행을 삭제할 때 전체 행을 제거합니다. DELETE문은 행에서 특정 열을 제거하지 않습니다. DELETE문의 결과는 WHERE절에 지정된 탐색 조건을 충족하는 행 수에 따라 0개 이상의 테이블 행을 제거하는 것입니다. DELETE문에서 WHERE절을 생략하면, SQL은 테이블에서 모든 행을 제거합니다. DELETE문은 다음과 같습니다.

   DELETE FROM table-name
     WHERE search-condition ...

예를 들어, 부서 D11이 다른 사이트로 이동된다고 가정합니다. 다음과 같이 WORKDEPT 값이 D11인 각각의 행을 CORPDATA.EMPLOYEE 테이블에서 삭제합니다.

   DELETE FROM CORPDATA.EMPLOYEE
     WHERE WORKDEPT = 'D11';

WHERE절이 표에서 삭제하려는 행을 SQL에게 알려줍니다. SQL은 기본 표에서 탐색 조건을 만족시키는 모든 행을 삭제합니다. 보기에서 행을 삭제하면 기본 표의 행이 삭제됩니다. WHERE절은 생략할 수 있으나 WHERE이 없는 DELETE문은 표나 보기에서 모든 행을 삭제하기 때문에 하나의 WHERE절을 포함시키는 것이 좋습니다. 표 내용과 더불어 표 정의를 삭제하려면, DROP문을 실행하십시오.

DELETE문 수행시 SQL이 오류를 발견하면 자료 삭제를 중단하고 음의 SQLCODE를 리턴시킵니다. COMMIT(*ALL), COMMIT(*CS), COMMIT(*CHG) 또는 COMMIT(*RR)를 지정하면 표 내의 행이 삭제되지 않습니다(이 명령문에 의해 이미 삭제된 행이 있는 경우, 이전 값으로 복원됩니다). COMMIT(*NONE)이 지정되는 경우, 이미 삭제된 행은 이전 값으로 복원되지 않습니다.

SQL이 탐색 조건을 만족시키는 행을 찾지 못하면 +100인 SQLCODE가 리턴됩니다.
주: DELETE문이 둘 이상의 행을 삭제했을 수 있습니다. 삭제된 행 수는 SQLCA의 SQLERRD(3)에 반영됩니다. 또한 GET DIAGNOSTICS문의 ROW_COUNT 진단 항목에서 이 값을 사용할 수 있습니다.