< 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 |