DELETE 문을 사용하여 데이터 삭제하기

DELETE문을 사용하여 테이블에서 전체 행을 제거할 수 있습니다.

DELETE문은 WHERE절에 지정한 검색 조건을 만족시키는 행 수에 따라 테이블의 0개 이상의 행을 제거합니다. DELETE 문에서 WHERE 절을 생략하면, Db2 는 사용자가 지정한 테이블이나 뷰에서 모든 행을 제거합니다. 따라서, DELETE문은 주의해서 사용하십시오. DELETE문은 행에서 특정 컬럼을 제거하지 않습니다.

범용 프로그래밍 인터페이스 정보 시작.

예제 DELETE 문

범용 프로그래밍 인터페이스 정보 시작.

다음의 문장은 직원 번호가 000060인 NEWEMP 테이블의 각 행을 삭제합니다.

DELETE FROM NEWEMP
  WHERE EMPNO = '000060';

다음 예제의 문이 PL/I 프로그램에 포함되어 있다고 가정합니다.

  • DSN8C10.EMP 에서 커서 C1 가 현재 위치한 행을 삭제합니다.
      EXEC SQL DELETE FROM DSN8C10.EMP WHERE CURRENT OF C1;
  • DSN8C10.EMP 테이블에서 부서 E11 와 D21 에 대한 모든 행을 삭제합니다.
      EXEC SQL DELETE FROM DSN8C10.EMP
        WHERE WORKDEPT = 'E11' OR WORKDEPT = 'D21';
  • 직원 테이블 X에서 결근 횟수가 가장 많은 직원을 삭제합니다.
      EXEC SQL DELETE FROM EMP X
        WHERE ABSENT = (SELECT MAX(ABSENT) FROM EMP Y
        WHERE X.WORKDEPT = Y.WORKDEPT);
  • 커서 CS1 가 10개의 행으로 구성된 행 집합 T1 에 있다고 가정하면, 행 집합에 있는 10개의 행을 모두 삭제합니다.
    EXEC SQL DELETE FROM T1 WHERE CURRENT OF CS1; 
  • 커서 CS1 가 10개의 행으로 구성된 테이블 T1 의 행 집합에 있다고 가정하고, 행 집합의 네 번째 행을 삭제합니다.
    EXEC SQL DELETE FROM T1 WHERE CURRENT OF CS1 FOR ROW 4 OF ROWSET;
  • T1 COL2 열의 값이 INTA 배열의 카디널리티와 일치하는 경우, 테이블 의 행을 삭제합니다. 배열 INTA는 DELETE 문에서 CARDINALITY 함수의 인수로 지정됩니다.
    CREATE TYPE INTARRAY AS INTEGER ARRAY[6];
    CREATE VARIABLE INTA AS INTARRAY;
    SET INTA = ARRAY[1, 2, 3, 4, 5];
    CREATE TABLE T1 (COL1 CHAR(7), COL2 INT);
    INSERT INTO T1 VALUES('abc', 10);
    DELETE FROM T1 WHERE COL2 = CARDINALITY(INTA);
    
  • T1 C2 열의 값이 10보다 큰 테이블 에서 3개의 행만 삭제합니다.
    DELETE FROM T1
       WHERE C2 > 10
       FETCH FIRST 3 ROWS ONLY;
범용 프로그래밍 인터페이스 정보 끝.