alter table을 이용, 테이블 구조 변경

15-12-11 by 최고관리자
keyword
1.alter table을 이용 column 추가
2.alter table을 이용 column 변경
3.alter table을 이용 column 삭제
4.set unused Option
5.제약조건 추가
6.not null 제약조건 추가
 
-Alter table(column 추가, 변경, 삭제)
Alter table을 이용하여 기존 column의 data type, size, default 값을 변경 할 수 있다.
 
column 추가
Alter table 테이블명 add (컬럼명 데이터타입 [default 디폴트값]);
SQL> alter table dept add (jobid varchar(10) default 'KBS',
col1 number(3),
col2 number(4));
주의 할 점은 column이 추가되는 위치를 지정 해 줄 수는 없다. 항상 뒤 쪽으로 들어간다.
 
column data type 변경
Alter table 테이블명 modify(컬럼명 데이터타입(길이));
SQL>alter table dept modify(jobid varchar2(6));
 
주의 해야 할 점은 (기존 컬럼에 데이터가 들어 있다면) 서로 호환 되는 것 끼리만 데이터타입의 변경이 가능 하다는 것이다(ex : varchar2->Char)
널 값은 데이터가 들어있지 않기 때문에 모든 변경이 가능하다.
 
column 삭제
Alter table 테이블명 drop column 컬럼명;
SQL>Alter table dept drop column jobid;
SQL>Alter table dept drop (col1, col2);
 
보통 낮에는 다른 사용자들이 그 column을 access하고 있으므로 삭제 할 경우 많은 application들이 에러난다. 그렇기 때문에 이렇게 작업하려고 하면 사용자가 없는 밤에 한다.
 
Set unused option
mark만 하고 사용하지 않겠다는 의미. 후에 사용자가 없을 떄 column 삭제 작업을 진행한다.
Alter table 테이블명 set unused (컬럼명, 컬럼명, 컬럼명);
SQL>alter table dept set unused (col1, col2, col3);
 
이렇게 해 두면 describe명령어로 테이블 구조를 확인 해 보아도 나오지 않는다.
 
 
-Alter table(제약조건 추가, 제약조건 삭제)
제약조건 추가
Alter table 테이블명 add constraint 제약조건이름 제약조건;
 
EX) primary key 제약조건 추가
SQL>alter table emp add constraint emp_empno_pk primary key(empno);
(암시적으로 primary key에는 unique index가 생성된다.)
 
EX) foreign key 제약조건 추가
SQL>alter table emp add constraint emp_mgr_fk foreign key(mgr) references emp(empno);
 
주의 할 점 : not null 제약조건은 add가 아니라 modify 옵션을 써서 추가한다.
Alter table 테이블명 modify (컬럼명 constraint 제약조건이름 NOT NULL);
SQL>alter table emp modify (ename constraint emp_ename_nn NOT NULL);




Comments

  1. 등록된 코멘트가 없습니다.

Leave a Comment

자동등록방지 숫자를 순서대로 입력하세요.