Add Columns (P11-4)
- 테이블안에 레코드가 있는 상태에서 컬럼을 추가하는 경우에는 'NOT NULL' 제약조건을 추가할 수 없음(새로운 컬럼 추가시 기존 데이터는 NULL로 되기 때문에)
- Add Columns 예제
- SQL> ALTER TABLE dept
2 ADD (comments VARCHAR2(3)); - Table altered.
- SQL> DESC dept
Name Null? Type
----------------------------------------- -------- ------------------- - DEPTNO NOT NULL NUMBER(2)
DNAME VARCHAR2(14)
LOC VARCHAR2(13)
COMMENTS VARCHAR2(3) - SQL> SELECT * FROM dept;
- DEPTNO DNAME LOC COM
---------- -------------- ------------- ---
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 Local Branck Korea
Modify Columns (P11-5)
- 데이터 크기의 증가는 문제 없지만, 데이터 타입의 변경 또는 크기를 줄이는 등의 경우는 해당 항목의 모든 레코드가 NULL일 경우에만 가능하다.
- Modify Columns 예제
- // 크기를 늘리는 경우는 문제 안됨
- SQL> ALTER TABLE dept
2 MODIFY (comments VARCHAR2(255)); - Table altered.
- // 크기를 줄이는 경우는 컬럼 상태에 따라 달라짐
- // 이 예제의 경우 comments 컬럼의 모든 데이터가 null이므로 가능
- SQL> ALTER TABLE dept
2 MODIFY (comments VARCHAR2(100)); - Table altered.
Drop Columns (P11-6)
- 삭제보다는 SET UNUSED 사용권장
- Drop Columns 예제
- SQL> ALTER TABLE dept
2 DROP (comments); - Table altered.
Unused Columns (P11-7)
- Unused Columns 한 데이터는 다시 되돌릴 수 없음
- 삭제할 내용인데 시간상의 문제 등으로 임시적으로 사용못하게 한것이므로 나중에 삭제함
- Unused Columns 예제
- SQL> DESC dept
Name Null? Type
----------------------------------------- -------- ------------- - DEPTNO NOT NULL NUMBER(2)
DNAME VARCHAR2(14)
LOC VARCHAR2(13)
COMMENTS VARCHAR2(100) - SQL> ALTER TABLE dept
2 SET UNUSED(comments); - Table altered.
- // SET UNUSED() 사용후 컬럼 안보임
- SQL> DESC dept
Name Null? Type
----------------------------------------- -------- ------------- - DEPTNO NOT NULL NUMBER(2)
DNAME VARCHAR2(14)
LOC VARCHAR2(13)
이 글은 스프링노트에서 작성되었습니다.