Notice
Recent Posts
Recent Comments
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Without haste, but without rest

3.5 테이블의 관리 본문

삽질의 리포팅

3.5 테이블의 관리

느린구름 2011. 7. 25. 10:55

오라클클럽: http://www.oracleclub.com/lecture/1014

   

테이블 컬럼의 관리

-ADD, MODIFY, DROP연산자를 통해 관리

   

ADD연산자

-테이블에 새로운 컬럼 추가

ALTER TABLE emp ADD(addr VARCHAR2(50));

   

MODIFY연산자

-테이블 컬럼 수정, 제약조건 변경, 컬럼 데이터형이 지정 되어있을 경우 변경 불가

ALTER TABLE emp MODIFY(ename VARCHAR2(50);

ALTER TABLE emp MODIFY(ename VARCHAR2(50) NOT NULL);

   

DROP연산자

-테이블 컬럼 삭제 또는 제약 조건 삭제

--컬럼 삭제

ALTER TABLE table_name DROP COLUMN column_name;

--제약 조건 삭제

ALTER TABLE emp DROP PRIMARY KEY;

--CASCADE 연산자와 함께 사용하면 외래키에 의해 참조되는 기본키도 삭제

ALTER TABLE emp DROP CONSTRAINT emp_pk_empno CASCADE;

   

기존 테이블의 복사

-서브쿼리를 가진 CREATE TABLE명령어를 사용해서 쉽게 복사

-제약 조건, 트리거, 테이블 권하는 새로운 테이블에 복사되지 않음

-제약조건은 NOT NULL 제약 조건만 복사

CREATE TABALE emp2

AS SELECT * FROM emp;

   

컬럼명 변경

ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name;

테이블의 테이블스페이스 변경

-Oracle8i 부터는 ALTER TABLE~MOVE TABLESPACE명령어로 쉽게 테이블 스페이스 변경

ALTER TABLE table_name MOVE TABLESPACE tablespace_name;

ALTER TABLE emp

MOVE TABLESPACE test;

   

테이블의 TRUNCATE

-테이블의 모든 행 삭제, 사용공간 해제

-DDL명령이므로 롤백 데이터가 생성되지 않음

-롤백불가

-행당 인덱스도 잘려 나감

-외래키가 참조중인 테이블은 TRUNCATE할 수 없음

-TRUNCATE명령을 사용하면 삭제 트리거가 실행되지 않음

TRUNCATE TABLE [schema.]table_name;

   

테이블 삭제(DROP TABLE)

DROP TABLE table_name [CASCADE CONSTRAINTS];

DROP TABLE emp;

--기본키를 참조하던 외래 키 조건도 같이 삭제

DROP TABLE emp CASCADE CONSTRAINT;