728x90
DELETE
테이블에 기록된 데이터를 삭제하는 구문
DELETE FROM 테이블명
WHERE 조건; -- WHERE절 생략 가능. 생략시 해당 테이블의 전체 행 모두 삭제
-- 홍길동, 이길동 직원의 데이터 지우기
DELETE FROM EMPLOYEE
WHERE EMP_NAME IN ('홍길동', '이길동');
-- 데이터를 쓰고 있는 자식 데이터가 있는 경우에는 삭제되지 않는다.
-- 예를 들어 D1을 가져다 쓰고 있는 자식데이터가 있을 경우
DELETE FROM DEPARTMENT
WHERE DEPT_ID = 'D1';
-- 삭제 안됨
728x90
TRUNCATE
테이블 전체 행을 삭제할 때 사용하는 구문
DELETE 보다 수행 속도가 더 빠르다
별도의 조건 제시 불가 / ROLLBACK 불가
TRUNCATE TABLE 테이블명; | DELETE FROM 테이블명; |
별도의 조건 제시 불가 | 특정 조건 제시 가능 |
(DELETE보다) 수행 속도 빠름 | (TRUNCATE보다) 수행 속도 느림 |
ROLLBACK 불가능 | ROLLBACK 가능 |
DELETE FROM EMP_SALARY;
-- 25 개 행 이(가) 삭제되었습니다.
ROLLBACK;
TRUNCATE TABLE EMP_SALARY;
-- Table EMP_SALARY이(가) 잘렸습니다.
728x90
'Programming > SQL' 카테고리의 다른 글
[Oracle] DDL(1) - ALTER(컬럼 추가/수정/삭제) (0) | 2024.06.08 |
---|---|
[Oracle] DML(2) - UPDATE / UPDATE에 서브쿼리 쓰기 (0) | 2024.03.08 |
[Oracle] DML(1) - INSERT / INSERT INTO SELECT / INSERT ALL (0) | 2024.03.08 |
[Oracle] SUBQUERY를 이용한 테이블 생성 / 테이블 생성 후 제약조건 추가하기 (ALTER TABLE) (2) | 2024.03.08 |
[Oracle] 제약조건(CONSTRAINT) - FOREIGN KEY(외래키) / ON DELETE SET NULL / ON DELETE CASCADE /ON DELETE RESTRICTED (1) | 2024.02.23 |