Oracle SQL(9)

YangJiWon·2021년 1월 15일
0

DB

목록 보기
9/12

Flashback Drop

  • 오라클 10g부터 제공하는 복구 기술로서 삭제된 테이블을 복구할 수 있는 방법이다.
  • DROP TABLE을 사용하여 삭제된 테이블은 RECYCLEBIN이라는 특별한 객체에 BIN$로 시작되는 이름으로 저장된다.

Flashback Drop 명령어

명령어설명
FLASHBACK TABLE 테이블명 TO BEFORE DROP;삭제된 테이블을 복구
SHOW RECYCLEBINRECYCLEBIN 객체 정보 조회
PURGE RECYCLEBINRECYCLEBIN 객체 정보 삭제
DROP TABLE 테이블명 PURGE테이블 완전 삭제(복구 불가)
FLASHBACK  TABLE dept_new TO BEFORE DROP;

ALTER ADD

  • 기존 테이블에 새로운 컬럼을 추가할 수 있다.
  • 데이터는 NULL 값으로 저장된다.
  • DEFALUT 옵션 설정도 가능하다.
-- 문법
ALTER TABLE 테이블명
ADD (컬럼명 데이터타입 [, 컬럼명 데이터타입]);

ALTER TABLE emp04
ADD (email varchar2(10), address varchar2(20));

제약 조건 추가

  • 기존 테이블에 제약조건을 추가하기 위해서는 ALTER TABLE 명령어를 사용한다.
  • NOT NULL 제약조건을 제외한 나머지 제약조건(PRIMARY KEY, UNIQUE, CHECK, FOREIGN KEY)은 ALTER TABLE ADD문을 사용하고 NOT NULL 제약조건은 ALTER TABLE MODIFY를 사용한다.
  • ALTER TABLE ADD문을 이용하여 제약조건을 추가하는 문법은 테이블 레벨 제약조건 설정방법과 동일한 문법이기 떄문에 컬럼 레벨 방식만 가능한 NOT NULL 제약조건은 사용할 수 없다.
ALTER TABLE 테이블명
ADD [CONSTRAINT 제약조건명] 제약조건타입(컬럼명);

ALTER TABLE scott_t3
ADD CONSTRAINT scott_t3_num_pk PRIMARY KEY(NUM);

ALTER TABLE 테이블명
MODIFY (컬럼명 데이터타입 [CONSTRAINT 제약조건명] );

ALTER TABLE scott_t3
MODIFY ( NAME varchar2(10) NOT NULL);

제약 조건 삭제

  • ALTER TABLE DROP문을 사용하면 제약조건을 삭제할 수 잇으며, CASCADE 옵션은 모든 종속적인 제약조건을 같이 삭제할 수 있다.
  • 기본적으로 제약조건명을 이용하여 제약조건을 삭제하지만 기본 키와 UNIQUE는 제약조건명 없이 PRIMARY KEY와 UNIQUE 키워드만 사용하여 삭제할 수 있다.
ALTER TABLE 테이블명
DROP PRIMARY KEY|UNIQUE(컬럼)|
	 CONSTRAINT 제약조건명 [CASCADE];
     
ALTER TABLE dept03
DROP PRIMARY KEY;

ALTER TABLE dept03
DROP CONSTRAINT dept03_deptno_pk;

--부모 테이블의 제약조건 삭제 시 자식 테이블의 FOREIGN KEY 제약조건을 연쇄적으로 삭제하기 위해 CASCADE 옵션을  사용한다.
ALTER TABLE dept05
DROP PRIMARY KEY CASCADE;
  • PRIMARY KEY, UNIQUE는 각각의 제약조건을 지정하거나 제약조건명을 지정해서 지울 수 있다.
  • 나머지 제약조건인 NOT NULL, CHECK, FOREIGN KEY 제약조건을 삭제하는 경우에도 CONSTRAINT 제약조건명을 지정하여 삭제한다.

ALTER MODIFY

  • 컬럼에 대해서 데이터 타입이나 크기, DEFALUT 값을 변경할 수 있다.
  • 모든 행의 컬럼의 값이 NULL이거나 행이 없는 경우, 숫자 및 문자 컬럼의 전체 길이를 증가 또는 축소시킬 수도 있으며 데이터 타입 변경도 가능하다.
  • DEFALUT 값을 변경하는 경우에는 변경 이후부터 입력되는 행에 대해서만 적용이 된다.
-- 문법
ALTER TABLE 테이블명
MODIFY (컬럼명 데이터타입 [, 컬럼명 데이터타입]);

ALTER TABLE emp04
MODIFY (email varchar2(20));

ALTER RENAME

  • 컬럼의 이름을 바꾸는 명령어이다.
ALTER TABLE 테이블
RENAME COLUMN 바꾸고 싶은 컬럼명 TO 바꿀 컬럼명;


ALTER TABLE scott_t
rename column address to addr;

ALTER DROP

  • 컬럼은 값의 존재여부와 상관없이 무조건 삭제된다.
  • 한꺼번에 여러 개의 컬럼들을 동시에 삭제할 수도 있으나 반드시 최소한 하나의 컬럼은 존재해야 한다.
ALTER TABLE 테이블명
DROP (컬럼명 [, 컬럼명]);

ALTER TABLE emp04
DROP (email);

ALTER DISABLE/ENABLE

  • 제약조건을 활성화시키거나 비활성화 시킬 수 있다.
ALTER TABLE 테이블명
DISABLE|ENABLE CONSTRAINT 제약조건명 [CASCADE];

ALTER TABLE scott_t4
DISABLE CONSTRAINT scott_t4_num_pk;

ALTER TABLE scott_t4
ENABLE CONSTRAINT scott_t4_num_pk;
  • CASCADE 옵션을 추가하면 해당 제약조건과 관련된 모든 제약조건을 연쇄적으로 비활성화한다.
profile
데이터데이터데이터!!

0개의 댓글