Oracle(2023-03-29)

권단비·2023년 3월 29일

Database

목록 보기
5/7

[트랜잭션]

트랜잭션 관리 : 일련의 작업 단위

・트랜잭션 명령어
 - COMMIT : 영구저장
 - SAVEPOINT
 - ROLLBACK : COMMIT 시점 이전까지는 롤백 가능
트랜잭션의 단위
시스템에서 장애 발생 시 복구 작업을 하게 될 때 사용한다.
병행 제어 시 처리되는 논리적인 작업 단위에 사용한다.
주의할 점! 각 트랜잭션이 데이터베이스 내에서 일관성과 무결성을 유지하기 위해서는 여러개의 트랜잭션 단위를 잘 정의해야 한다.(여러개의 트랜잭션 단위를 잘 정의해야 하는데 이는 프로젝트 설계자 및 어플리케이션 개발자의 책임이다.)

[무결성 제약 조건의 개념과 종류]

무결성 : 데이터베이스 내에 있는 데이터의 정확성 유지
컬럼에 조건 주는 것 :
insert할 때 컴파일에러처럼 한 번 떄리는거

NOT NULL : NULL을 허용하지 않음
UNIQUE : 중복된 값을 허용하지 않고, 항상 유일한 값ㅇ르 갖도록 함
PRIMARY KEY : NULL을 허용하지 않고, 중복된 값도 허용하지 않음
FOREIGN KYU
CHECK
DROP TABLE DEPT01;
CREATE TABLE DEPT01 AS SELECT * FROM DEPT;

SELECT * FROM DEPT01;

DELETE FROM DEPT01;

COMMIT; -- 영구저장
ROLLBACK; -- COMMIT 시점 이전까지는 롤백 가능

SELECT * FROM DEPT;
INSERT INTO DEPT VALUES (50,'TEST','SEOUL'); -- Key값이 중복일 경우 에러

INSERT INTO EMP01 (EMPNO01, ENAME, JOB, DEPTNO) VALUES (NULL, NULL,'SALESMAN', 30);

CREATE TABLE EMP01(EMPNO1 NUMBER(4), ENAME VARCHAR2(10), JOB VARCHAR2(9), DEPTNO NUMBER(2));
INSERT INTO EMP01 (EMPN1, ENAME, JOB, DEPTNO) VALUES (NULL, NULL,'SALESMAN', 30);

SELECT*FROM EMP01;

--------------------------------------
 CREATE TABLE EMP02(
        EMPNO NUMBER(4) NOT NULL, 
        ENAME VARCHAR2(10) NOT NULL, 
        JOB VARCHAR2(9), 
        DEPTNO NUMBER(2)
);
INSERT INTO EMP02 (EMPNO, ENAME, JOB, DEPTNO) VALUES(100,'홍길동','SALESMAN',30);
SELECT * FROM EMP02;

--------------------------------------
 CREATE TABLE EMP03(
        -- EMPNO NUMBER(4) UNIQUE,  -- 유일하게 하나의 값만 있어야 한다.
        EMPNO NUMBER(4) PRIMARY KEY,  -- 유일하게 하나의 값만 있어야 한다.
        ENAME VARCHAR2(10) NOT NULL, 
        JOB VARCHAR2(9), 
        DEPTNO NUMBER(2)
);
INSERT INTO EMP03 (EMPNO, ENAME, JOB, DEPTNO) VALUES(100,'홍길동','SALESMAN',30);
INSERT INTO EMP03 (EMPNO, ENAME, JOB, DEPTNO) VALUES(101,'홍길순','SALESMAN',30);
INSERT INTO EMP03 (EMPNO, ENAME, JOB, DEPTNO) VALUES(NULL,'홍길순','SALESMAN',30);
-- UNIQUE + NOT NULL
SELECT * FROM EMP03;

0개의 댓글