728x90
• 트랜젝션 제어어 (TCL) : 트랜젝션 제어어는 데이터 조작어(DML) 명령어 실행, 취소, 임시저장할 때 사용하는 명령어
• 트랜젝션 (Transaction) : 분할할 수 없는 최소 단위, 논리적인 작업 단위
• 실행 (COMMIT) : 모든 작업을 최종 실행
취소 (ROLLBACK) : 모든 작업을 되돌림
• 임시 저장 (SAVEPOINT) : ROLLBACK 저장점을 지정하는 명령어
• 실습
/* Practice 데이터베이스 사용*/
USE Practice;
/*************테이블 생성(Create)*****************/
/* (회원테이블 존재할 시 , 회원테이블 삭제) */
DROP TABLE 회원테이블;
/* 회원테이블 생성 */
CREATE TABLE 회원테이블 (
회원번호 INT PRIMARY KEY,
이름 VARCHAR(20),
가입일자 DATE NOT NULL,
수신동의 BIT
);
/* 회원테이블 조회 */
SELECT * FROM 회원테이블;
/*************BEGIN + 취소 (ROLLBACK)*************/
/* 트랜젝션 시작 */
BEGIN;
/* 데이터 삽입 */
INSERT INTO 회원테이블 VALUES (1001, '홍길동', '2020-01-02', 1);
/* 회원테이블 조회 */
SELECT * FROM 회원테이블;
/* 취소 */
ROLLBACK;
/* 회원테이블 조회 */
SELECT * FROM 회원테이블;
/*************BEGIN + 실행 (COMMIT)*************/
/* 트랜젝션 시작 */
BEGIN;
/* 데이터 삽입 */
INSERT INTO 회원테이블 VALUES (1001, '홍길동', '2020-01-02', 1);
/* 회원테이블 조회 */
SELECT * FROM 회원테이블;
/* 실행 */
COMMIT;
/* 회원테이블 조회 */
SELECT * FROM 회원테이블;
/************ 임시 저장 (SAVEPOINT) ************/
/* (회원테이블에 데이터 존재할 시, 데이터 모두 삭제) */
DELETE FROM 회원테이블;
/* 회원테이블 조회 */
SELECT * FROM 회원테이블;
/* 트랜젝션 시작 */
BEGIN;
/* 데이터 삽입 */
INSERT INTO 회원테이블 VALUES (1001, '홍길동', '2020-01-02', 1);
/* SAVEPOINT 지정 */
SAVEPOINT S1;
/* 1001 회원 이름 수정 */
UPDATE 회원테이블
SET 이름 = ' 이순신';
/* SAVEPINT 지정 */
SAVEPOINT S2;
/* 1001 회원 데이터 삭제 */
DELETE
FROM 회원테이블;
/* SAVEPOINT 지정 */
SAVEPOINT S3;
/* 회원테이블 조회 */
SELECT * FROM 회원테이블;
/* SAVEPINT S2 저장점으로 ROLLBACK */
ROLLBACK TO S2;
/* 회원테이블 조회 */
SELECT * FROM 회원테이블;
/* 실행 */
COMMIT;
/* 회원테이블 조회 */
SELECT * FROM 회원테이블;
'Studying > SQL' 카테고리의 다른 글
데이터 조회(SELECT) (0) | 2021.09.27 |
---|---|
SQL명령어 - 데이터 조작어 (DML) / 데이터 제어어 (DCL) (0) | 2021.09.23 |
SQL 명령어 - 데이터 정의어 (DDL) (0) | 2021.09.22 |
SQL 공부 시작하기 (0) | 2021.09.21 |