데이터 조작어는 데이터를 삽입, 조회, 수정, 삭제할 때 사용하는 명령어
CREATE TABLE 회원테이블(
회원번호 INT PRIMARY KEY
이름 VARCHAR(20)
가입일자 DATE NOT NULL
수신동의 BIt
)
INSERT INTO 회원테이블 VALUES(1001, '홍길동', '2020-11-12', 1);
INSERT INTO 회원테이블 VALUES(1002, '임꺽정', '2020-11-13', 0);
INSERT INTO 회원테이블 VALUES(1003, '장길산', '2020-11-14', 0);
INSERT INTO 회원테이블 VALUES(1004, '우투리', '2020-11-15', 1);
// PRIMARY KEY 위반
INSERT INTO 회원테이블 VALUES(1004, '장영실', '2020-11-16', 1); // 회원번호 1004는 이미 존재하기 때문에 중복되어 삽입할 수 없음
// NOT NULL 위반
INSERT INTO 회원테이블 VALUES(1005, '장보고', NULL, 1); // 가입일자 는 NULL을 허용하지 않으므로 삽입할 수 없음
// 데이터 타입 조건 위반
INSERT INTO 회원테이블 VALUES(1005, '장보고', 1, 1); // 가입일자의 데이터 타입이 맞지 않으므로 삽입할 수 없음
SELECT*
FROM 회원테이블
SELECT 이름, 회원번호
FROM 회원테이블
SELECT 이름 AS 회원이름
FROM 회원테이블
// 모든 열의 수신동의의 값을 0으로 수정
UPDATE 회원테이블
SET 수신동의 = 0
// 회원테이블에서 이름이 우투리인 사람의 수신동의 값을 0으로 수정
UPDATE 회원테이블
SET 수신동의 = 0;
WHERE 이름 = '우투리'
DELETE
FROM 회원테이블
// 이름이 우투리인 데이터만 삭제
DELETE
FROM 회원테이블
WHERE 이름 = '우투리'
데이터 조작어, 명령어의 실행, 취소, 임시저장할 때 사용하는 명령어이다.
트랜젝션은 분할할 수 없는 최소 단위이며 논리적인 작업 단위.
위의 그림에서 INSERT, UPDATE, SELECT들은 하나의 트랜젝션이기 때문에, 저 셋중 하나라도 에러가 발생한다면 전부 취소된다. 취소되면 트랜젝션 작업 전 데이터로 돌아가게 됨.
반대로 발생되지 않으면 트랜젝션 작업 후 데이터로 실행됨.
가장 중요한 두 명령어는 작업을 최종 실행하는 COMMIT, 모든 작업을 되돌리는(취소) ROLLBACK이 있다.
COMMIT = 트랜젝션 시작 -> 데이터 삽입-> 해당 작업 최종 실행
ROLLBACK = 트랜젝션 시작 -> 데이터 삽입 -> 해당 작업 되돌림
CREATE TABLE 회원테이블(
회원번호 INT PRIMARY KEY
이름 VARCHAR(20)
가입일자 DATE NOT NULL
수신동의 BIt
)
// 트랜젝션을 사용하기 위해서 BEGIN 명령어 실행
BEGIN;
// 데이터 삽입
INSERT INTO 회원테이블 VALUES(1001, '홍길동', '2020-11-12', 1);
// 취소
ROLLBACK;
// 트랜젝션을 사용하기 위해서 BEGIN 명령어 실행
BEGIN;
// 데이터 삽입
INSERT INTO 회원테이블 VALUES(1002, '임꺽정', '2020-11-13', 0);
// 실행
COMMIT;
// 회원테이블에 데이터 존재할 시, 전부 삭제
DELETE
FROM 회원테이블
// 트랜젝션을 사용하기 위해서 BEGIN 명령어 실행
// 데이터 삽입
INSERT INTO 회원테이블 VALUES(1001, '홍길동', '2020-11-12', 1);
// SAVEPOINT 지정
SAVEPOINT S1;
// 데이터 수정
UPDATE 회원테이블
SET 이름 = '이순신'
// SAVEPOINT 지정
SAVEPOINT S2;
// 원하는 저장점으로 롤백
ROLLBACK TO S1;