![](https://velog.velcdn.com/images/parkhyeunwoo/post/f18971c0-fafb-43bd-9737-e6af8120eafd/image.jpg)
1. COMMIT & ROLLBACK
1-1. COMMIT
- 모든 작업을 정상적으로 처리하겠다고 확정하는 명령어이다.
- 트랜잭션의 처리 과정을 데이터베이스에 반영하기 위해서, 변경된 내용을 모두 영구저장한다.
- COMMIT을 수행하면 하나의 트랜잭션 과정을 종료하게 된다.
- TRANSACTION(INSERT, UPDATE, DELETE) 작업 내용을 실제 DB에 저장한다.
- 이전 데이터가 완전히 적용된다.
- 모든 사용자가 변경한 데이터의 결과를 볼 수 있다.
![](https://velog.velcdn.com/images/parkhyeunwoo/post/dc53c21a-23fa-4366-9e29-e78b492f410a/image.png)
1-2. ROLLBACK
- 작업 중 문제가 발생했을 때, 트랜잭션의 처리 과정에서 발생한 변경사항을 취소하고, 트랜잭션 과정을 종료시킨다.
- 트랜잭션으로 인한 하나의 묶음 처리가 시작되기 이전의 상태로 되돌린다.
- TRANSACTION(INSERT, UPDATE, DELETE) 작업 내용을 취소한다.
- 이전 COMMIT한 곳까지만 복구한다.
- 트랜잭션 작업 중 하나라도 문제가 발생하면, 모든 작업을 취소해야 하기 때문에 하나의 논리적인 작업 단위로 구성해 놓아야 한다.
- 문제가 발생하면, 논리적인 작업 단위를 모두 취소해버리면 되기 때문이다.
![](https://velog.velcdn.com/images/parkhyeunwoo/post/e766a2e5-781d-494f-b6d6-3329a3c3fbe5/image.png)
1-3. COMMIT 명령어와 ROLLBACK 명령어의 장점
- 데이터 무결성이 보장된다.
- 논리적으로 연관된 작업을 그룹화할 수 있다.
1-4. 자동 ROLLBACK되는 경우
1-5. 자동 COMMIT되는 경우
- DDL문(create, alter, drop, truncate)
- DCL문(grant, revoke) 사용권한
- insert, update, delete 작업 후 COMMIT하지 않고 오라클 정상 종료시에 COMMIT 명령어를 입력하지 않아도 정상 COMMIT 후 오라클 종료
-- COMMIT, ROLLBACK. 오토 COMMIT이 일반적
COMMIT;
SELECT * FROM SAMPLE s ;
DELETE SAMPLE;
ROLLBACK;