alter table을 이용, 테이블 구조 변경
keyword
1.alter table을 이용 column 추가
2.alter table을 이용 column 변경
3.alter table을 이용 column 삭제
4.set unused Option
5.제약조건 추가
6.not null 제약조건 추가
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);
등록된 코멘트가 없습니다.