TCL (TRANSACTION CONTROL LANGUAGE)

TCL (TRANSACTION CONTROL LANGUAGE)
: 트랜잭션 제어 언어
    
* 트랜잭션
  - 데이터베이스의 논리적 연산단위
  - 데이터의 변경사항(DML)들을 하나의 트랜잭션에 묶어서 처리
      DML문 한개를 수행할 때 트랜잭션이 존재하면 해당 트랜잭션이 같이 묶어서 처리
                            트랜잭션이 존재하지 않으면 트랜잭션이 만들어서 묶어서 처리
    
COMMIT 하기 전까지의 변경사항들을 하나의 트랙잭션에 담아둔다.
  - 트랜잭션의 대상이 되는 SQL문 : INSERT, UPDATE, DELETE
    
COMMIT(트랜잭션 종료 처리후 확정)
ROLLBACK (트랜잭션 취소)
SAVEPOINT (임시저장)

- COMMIT
: 한 트랜잭션에 담겨있는 변경사항들을 실제 DB에 반영시키겠다는 의미
  ( 이후에 트랜잭션은 사라진다 )
  
- ROLLBACK
: 한 트랜잭션에 담겨있는 변경사항들을 삭제(취소)한 후 마지막 COMMIT 시점으로 돌아간다.

- SAVEPOINT : 현재 이 시점에 해당 포인명으로 임시저장점을 정의해 두는 것
              ROLLBACK 진행 시 전체 변경사항을 삭제하는 것이 아니라 일부만 삭제

SELECT * FROM EMP_01;

<aside> 💡 실질적 DB는 삭제가 되어있지 않고 트랜잭션에 쌓인다.

</aside>

ROLLBACK;


SELECT * FROM EMP_01;

INSERT INTO EMP_01 VALUES(500, '김미영', '인사관리부');

<aside> 💡 DB에 들어가진 않고 트랜잭션에 들어가져 있는 것이다.

</aside>

COMMIT;

<aside> 💡 트랜잭션에 들어가있는 것을 DB에 들어가게 하는 것!

</aside>