■ COMMIT & ROLLBACK
- 실제 하드디스크상에 물리적으로 저장된 상황을 확정하기 위해서는 COMMIT을 수행해야 함
- COMMIT 하면 ROLLBACK 적용 안됨.
- COMMIT 실행 이후 DML(INSERT, UPDATE, DELETE) 구문을 통해 변경된 데이터를 취소할 수 있으며
DML 명령 사용 후 COMMIT을 수행하고 나서 ROLLBACK을 실행해봐야 아무 소용 없음
--■■■ COMMIT / ROLLBACK ■■■--
SELECT *
FROM TBL_DEPT;
--==>>
/*
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
*/
--○ 데이터 입력
INSERT INTO TBL_DEPT VALUES(50, '개발부', '서울');
--==>> 1 행 이(가) 삽입되었습니다.
SELECT *
FROM TBL_DEPT;
--==>>
/*
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 개발부 서울
*/
-- 50번 개발부 서울...
-- 이 데이터는 TBL_DEPT 테이블이 저장되어 있는
-- 하드디스크상에 물리적으로 적용되어 저장된 것이 아니다.
-- 메모리(RAM) 상에 입력된 것이다.
--○ 롤백
ROLLBACK;
--==>> 롤백 완료.
--○ 다시 확인
SELECT *
FROM TBL_DEPT;
--==>>
/*
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
*/
--> 50번 개발부 서울... 에 대한 데이터가 소실되었음을 확인(존재하지 않음)
--○ 다시 데이터 입력
INSERT INTO TBL_DEPT VALUES(50, '개발부', '서울');
--==>>1 행 이(가) 삽입되었습니다.
--○ 확인
SELECT *
FROM TBL_DEPT;
--==>>
/*
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 개발부 서울
*/
-- 50번 개발부 서울...
-- 이 데이터는 TBL_DEPT 테이블이 저장되어 있는 하드디스크상에 저장된 것이 아니라
-- 메모리(RAM) 상에 입력된 것이다.
-- 이를... 실제 하드디스크상에 물리적으로 저장된 상황을 확정하기 위해서는
-- COMMIT 을 수행해야 한다.
--○ 커밋
COMMIT;
--==>> 커밋 완료.
--○ 커밋 이후 다시 확인
SELECT *
FROM TBL_DEPT;
--==>>
/*
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 개발부 서울
*/
--○ 롤백
ROLLBACK;
--==>> 롤백 완료.
--○ 롤백 이후 다시 확인
SELECT *
FROM TBL_DEPT;
--==>>
/*
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 개발부 서울
*/
--> 롤백(ROLLBACK)을 수행했음에도 불구하고
-- 50번 개발부 서울... 의 행 데이터는 소실되지 않았음을 확인
--※ COMMIT 을 실행한 이후로 DML(INSERT, UPDATE, DELETE) 구문을 통해
-- 변경된 데이터를 취소할 수 있는 것일 뿐...
-- DML 명령을 사용한 후 COMMIT 을 수행하고나서 ROLLBACK을 실행해봐야
-- 아무 소용이 없다.
(파일명 : 20231020_01_scott)
■ UPDATE
- 데이터 수정
UPDATE 테이블명
SET 수정 내용
WHERE 수정하려는 조건
--○ 데이터 수정(UPDATE → TBL_DEPT)
UPDATE TBL_DEPT
SET DNAME = '연구부', LOC = '경기' -- UPDATE → WHERE → SET 순서로 작성하기!!
WHERE DEPTNO = 50;
■ DELETE
- 데이터 삭제
--○ 데이터 삭제 (DELETE → TBL_DEPT)
DELETE TBL_DEPT -- DELETE 이렇게 작성하지 말고
WHERE DEPTNO = 50;
SELECT * -- 삭제할 데이터가 맞는지 확인한 후
FROM TBL_DEPT
WHERE DEPTNO = 50;
DELETE -- SELECT *만 DELETE로 바꿔서 실행하기
FROM TBL_DEPT
WHERE DEPTNO = 50;
--==>> 1 행 이(가) 삭제되었습니다.
--○ 확인
SELECT *
FROM TBL_DEPT;
--==>>
/*
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
*/
--○ 커밋
COMMIT;
--==>> 커밋 완료.