Published 2022. 11. 23. 16:46

< DELETE >

   테이블에 기록된 데이터를 삭제하는 구문 (한 행단위로 삭제됨)
    
    [표현법]
     DELETE FROM 테이블명 
    [WHERE 조건]; --> WHERE절 제시 안하면 전체행 다 삭제됨 

 

예시1) 강람보,김말순 사원 삭제

DELETE FROM EMPLOYEE
WHERE EMP_NAME IN('강람보','김말순');

 

예시2) DEPT_ID가 D1인 부서 삭제

DELETE FROM DEPARTMENT
WHERE DEPT_ID = 'D1'; -- D1을 쓰고있는 자식데이터가 있기 때문에 삭제 안됨

 

>> 삭제시 외래키 제약조건에 의해 삭제가 불가능할 경우 
     잠시 제약조건을 비활성화 시킬 수 있음 

    [표현법]

    ALTER TABLE 테이블명 DISABLE CONSTRAINT 제약조건명 CASCADE 

ALTER TABLE EMPLOYEE DISABLE CONSTRAINT SYS_C007155 CASCADE; --비활성화

비활성화 후 다시 위의 DEPT_ID = 'D1' 부서를 삭제하면 삭제 됨 

ALTER TABLE EMPLOYEE ENABLE CONSTRAINT SYS_C007155; --활성화

 


 

     * TRUNCATE :  테이블의 전체행을 삭제할 때 사용되는 구문 / DELETE보다 수행 속도가 더 빠름
                                  별도의 조건을 제시 불가, ROLLBACK 불가

     [표현법]

    TRUNCATE TABLE 테이블명;

TRUNCATE TABLE EMP_SALARY;

 

'ORACLE' 카테고리의 다른 글

ORACLE 09. DCL(GRANT, REVOKE)  (0) 2022.11.24
ORACLE 08. DDL (ALTER, DROP)  (0) 2022.11.23
ORACLE 07. DML (UPDATE)  (0) 2022.11.23
ORACLE 07. DML (INSERT)  (0) 2022.11.23
ORACLE 06. DDL (CREATE)_ SUBQUERY 이용한 테이블 생성  (0) 2022.11.23
복사했습니다!