Programming/SQL

[Oracle] DML(3) - DELETE ( vs TRUNCATE 비교)

Jayna. 2024. 3. 8. 22:06
728x90
 

[Oracle] DML(2) - UPDATE / UPDATE에 서브쿼리 쓰기

[Oracle] DML(1) - INSERT / INSERT INTO SELECT / INSERT ALL DML : DATA MANIPULATION LANGUAGE 데이터 조작 언어 테이블에 새로운 데이터를 삽입(INSERT) 하거나, 기존의 데이터를 수정(UPDATE) 하거나, 삭제(DELETE) 하는 구문

jaynarecord.tistory.com

 

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이(가) 잘렸습니다.

 

 

 

 

[Oracle] DML(1) - INSERT / INSERT INTO SELECT / INSERT ALL

DML : DATA MANIPULATION LANGUAGE 데이터 조작 언어 테이블에 새로운 데이터를 삽입(INSERT) 하거나, 기존의 데이터를 수정(UPDATE) 하거나, 삭제(DELETE) 하는 구문 INSERT 테이블에 행을 추가하는 구문 1. INSERT IN

jaynarecord.tistory.com

 

728x90