DELETE
테이블에 기록된 데이터를 삭제하는 구문 (한 행 단위로 삭제됨)
[표현식]
DELETE FROM 테이블명
[WHERE 조건;] --> WHERE 조건 제시 안하면 전체 행 다 사라짐
테이블에 있는 모든 데이터 지우기
DELETE FROM EMPLOYEE;
차은우 사원의 데이터 지우기
DELETE FROM EMPLOYEE
WHERE EMP_NAME = '차은우';
데이터를 삭제할때도 해당 컬럼이 부모데이로 사용되는 경우 삭제되지 않는다
-- DEPT_ID가 D1인 부서를 삭제 (DEPT_ID)는 부모키
DELETE FROM DEPARTMENT
WHERE DEPT_ID = 'D1';
-- ORA-02292: integrity constraint (KH.SYS_C007215) violated - child record found
-- 외래키 제약 조건
-- D1의 값을 가져다 쓰는 자식데이터가 있기 때문에 삭제가 안됨!!
TRUNCATE
테이블의 전체 행을 삭제할 때 사용되는 구문
--> DELETE보다 수행속도가 빠름
별도의 조건 제시 불가, ROLLBACK 불가하다
[표현식]
TRUNCATE TABLE 테이블명;
TRUNCATE TABLE EMP_SALARY;
ROLLBACK; -- 롤백안된다..