TCL (Transaction Control Language)
트랜잭션 제어 언어 (COMMIT, ROLLBACK)
트랜잭션이란?
한꺼번에 수행되어야 할 최소 작업 단위를 말한다.
논리적인 작업 단위 (Logical Unit of Work : LUW)
하나의 트랜잭션으로 이루어진 작업은 반드시 한꺼번에 완료(COMMIT)되어야 하며, 그렇지 않은 경우에는 한꺼번에 취소(ROLLBACK)되어야 한다.
- COMMIT : 트랜잭션 작업이 정상 완료 되고 나면 변경 내용을 영구히 저장
- ROLLBACK : 트랜잭션 작업을 취소하고 최근 COMMIT한 시점으로 이동
- SAVEPOINT 세이브포인트명 : 현재 트랜잭션 작업 시점에 이름을 정해줌. 하나의 트랜잭션 안에서 구역을 나눔. 작업량이 많을 경우 유용하게 쓰일 수 있다.
- ROLLBACK TO 세이브포인트명 : 트랜잭션 작업을 취소하고 SAVEPOINT 시점으로 이동
DML (INSERT, UPDATE, DELETE) 구문은 반드시 COMMIT을 해야 반영된다.
DDL(Date Definition Language)
ALTER : 객체를 수정하는 구문
테이블 객체 수정 : ALTER TABLE 테이블명 수정할내용;
- ALTER로 수정할 수 있는 내용
컬럼 추가/수정/삭제,
제약조건 추가/수정/삭제,
테이블명 변경,
제약조건 이름 변경
칼럼추가, 컬럼 생성 시 DEFAULT 값 지정
ALTER TABLE DEPT_COPY
ADD (LNAME VARCHAR2(20) DEFAULT '한국');
컬럼삭제
ALTER TABLE DEPT_COPY
DROP COLUMN LNAME;
→ 테이블에 최소 한 개 이상의 컬럼이 남아있어야 하기 때문에 모든 열을 삭제할 수는 없다.
→ 제약 조건이 있는 컬럼을 삭제 시 제약 조건도 함께 삭제해야 한다.
CASCADE CONSTRAINTS
ALTER TABLE TB1
DROP COLUMN PK CASCADE CONSTRAINTS;
컬럼에 제약 조건 추가
NOT NULL 제약 조건의 경우 ADD가 아니라 MODIFY 를 사용한다.
-- DEPT_COPY2에 PK 제약조건 추가
ALTER TABLE DEPT_COPY2
ADD CONSTRAINT PK_DEPT_ID2 PRIMARY KEY(DEPT_ID);
-- DEPT_COPY2에 UNIQUE 제약조건 추가
ALTER TABLE DEPT_COPY2
ADD CONSTRAINT UN_DEPT_TITLE2 UNIQUE(DEPT_TITLE);
-- DEPT_COPY2에 NOT NULL 제약조건 추가
-- NOT NULL 제약조건의 경우 ADD가 아닌 MODIFY 사용
ALTER TABLE DEPT_COPY2
MODIFY DEPT_TITLE CONSTRAINT NN_DEPT_TITLE2 NOT NULL;
제약 조건 삭제
DROP CONSTRAINT 제약조건명;
-- 제약조건 1개 삭제 시
ALTER TABLE CONST_EMP
DROP CONSTRAINT CK_MARRIAGE;
-- 제약조건 여러 개 삭제 시, 연달아 작성
ALTER TABLE CONST_EMP
DROP CONSTRAINT FK_JID
DROP CONSTRAINT FK_MID
DROP CONSTRAINT FK_DID;
-- NOT NULL 제약 조건은 삭제 시 MODIFY 이용
--
ALTER TABLE CONST_EMP
MODIFY (ENAME NULL, ENO NULL);
- NOT NULL 은 ‘수정’으로 취급
컬럼 자료형 수정
MODIFY 컬럼명 자료형
ALTER TABLE DEPT_COPY2
MODIFY DEPT_ID CHAR(3)
MODIFY DEPT_TITLE VARCHAR2(30)
MODIFY LOCATION_ID VARCHAR2(2);
DEFAULT 값 변경
ALTER TABLE DEPT_COPY
MODIFY CNAME DEFAULT '미국';
컬럼 이름 변경 / 제약조건명 변경
RENAME COLUMN 기존이름 TO 바꿀이름;
RENAME CONSTRAINT 기존이름 TO 바꿀이름;
ALTER TABLE DEPT_COPY3
RENAME COLUMN DEPT_ID TO DEPT_CODE;
ALTER TABLE DEPT_COPY3
RENAME CONSTRAINT PK_DEPT_CODE3 TO PK_DCODE;
테이블 이름 변경
RENAME TO 바꿀명;
ALTER TABLE DEPT_COPY3
RENAME TO DEPT_TEST;
테이블 삭제
DROP TABLE 테이블명 CASCADE CONSTRAINTS;
'LECTURE > Oracle' 카테고리의 다른 글
11_SEQUENCE (0) | 2023.01.19 |
---|---|
10_VIEW (0) | 2023.01.18 |
07_DML (1) | 2023.01.18 |
06_테이블 생성 및 제약조건 (0) | 2023.01.17 |
05_SUBQUERY (0) | 2023.01.16 |