제 9 장. Table변경/삭제

Column 추가
TABLE 에 새로운 COLUMN 을 추가한다.
A LTER TABLE table명
ADD (column명 type(size) [DEFAULT value] [column_constraint], ...........) ;

 
[ 예제 ]
S_REGION TABLE 에 다음과 같은 COLUMN 을 추가하시오.

COMMENTS VARCHAR2(25)
A LTER TABLE S_REGION
ADD (COMMENTS VARCHAR2(25))
(추가될 COLUMN 의 위치는 지정할 수 없다. 새로운 COLUMN 은 마지막 위치에 생성된다.)


Column 변경
A LTER TABLE 문장의 MODIFY 절을 사용하여 다음과 같은 변경을 할 수 있다.
COLUMN 의 크기를 확장할 수 있다.
데이타가 들어있지 않으면 COLUMN 의 크기를 줄일 수 있다.
데이타가 들어있지 않다면 COLUMN 의 타입을 수정할 수 있다.
COLUMN 에 NULL 값이 없다면 NOT NULL CONSTRAINT 를 지정할 수 있다.
DEFAULT VALUE 를 변경할 수 있다.
이미 생성되어 있는 COLUMN 을 변경한다.
A LTER TABLE table명
MODIFY (column명 type(size) [DEFAULT value] [NOT NULL], .............) ;

 
Constraint 추가
이미 생성되어 있는 TABLE 에 CONSTRAINT 를 추가한다.
A LTER TABLE table명
ADD (table_constraint) ;


[ 예제 ]
S_EMP TABLE 에 다음과 같은 CONSTRAINT 를 추가하시오.
MANAGER_ID COLUMN 이 S_EMP TABLE 의 ID COLUMN 을 REFERENCE 하는 FOREIGN KEY CONSTRAINT 를 추가하시오.

A LTER TABLE S_EMP
ADD (CONSTRAINT S_EMP_MANAGER_ID_FK FOREIGN KEY(MANAGER_ID)
REFERENCES S_EMP(ID)) ;


Constraint 삭제
이미 생성되어 있는 TABLE 의 CONSTRAINT 를 삭제한다.
A LTER TABLE table명
D ROP PRIMARY KEY |
UNIQUE(column명) |
CONSTRAINT constraint명 [CASCADE] ;


[ 예제 ]
S_EMP TABLE 의 다음과 같은 CONSTRAINT 를 삭제하시오.
MANAGER_ID COLUMN 의 FOREIGN KEY CONSTRAINT

A LTER TABLE S_EMP
D ROP CONSTRAINT S_EMP_MANAGER_ID_FK ;


전체 데이타의 삭제
T RUNCATE 문장은 DDL 이다.
ROLLBACK SEGMENT 를 만들지 않고 모든 데이타를 삭제한다.
데이타가 삭제된 FREE 영역은 환원된다.
TABLE 로부터 모든 데이타를 삭제한다.
T RUNCATE TABLE table명 ;


[ 예제 ]
S_ITEM TABLE 의 모든 데이타를 삭제하시오.

T RUNCATE TABLE S_ITEM ;


Constraint disable/enable
TABLE 에 있는 모든 데이타가 CONSTRAINT 를 만족시켜야 ENABLE 할 수 있다.
PRIMARY KEY, UNIQUE CONSTRAINT 를 ENABLE 하면 그에 따른 INDEX FILE 이 자동적으로 생성된다.
CASCADE OPTION 은 FOREIGN KEY CONSTRAINT 를 DISABLE 할 때 사용한다.
CONSTRAINT 를 삭제하고 새로 만들지 않고 DISABLE, ENABLE 한다.
A LTER TABLE table명
DISABLE | ENABLE PRIMARY KEY |
UNIQUE(column명) |
CONSTRAINT constraint명 [CASCADE] ;


[ 예제 ]
S_DEPT TABLE 의 PRIMARY KEY CONSTRAINT 를 DISABLE 시키시오.

A LTER TABLE S_DEPT
DISABLE CONSTRAINT S_DEPT_ID_PK CASCADE;
S_EMP TABLE 의 S_EMP_DEPT_ID_FK CONSTRAINT 도 자동적으로 DISABLE 된다.

 
Table 삭제
TABLE 을 삭제하면 그 TABLE 에 딸린 INDEX FILE 도 삭제된다.
VIEW, SYNONYM, STORED PROCEDURE, FUNCTION, TRIGGER 등은 삭제되지 않는다.
CASCADE CONSTRAINTS 는 모 TABLE 을 삭제하고 자 TABLE 의 FOREIGN KEY CONSTRAINT 도 삭제한다.
D ROP TABLE table명 [CASCADE CONSTRAINTS] ;


[ 예제 ]
S_DEPT TABLE 을 삭제하시오.

D ROP TABLE S_DEPT CASCADE CONSTRAINTS ;


이름의 변경
TABLE, VIEW, SEQUENCE, SYNONYM 의 이름을 변경한다.
RENAME old명 TO new명 ;


[ 예제 ]
S_ORD TABLE 의 이름을 S_ORDER 로 변경하시오.

RENAME S_ORD TO S_ORDER ;

+ Recent posts