Add Columns (P11-4)

  • 테이블안에 레코드가 있는 상태에서 컬럼을 추가하는 경우에는 'NOT NULL' 제약조건을 추가할 수 없음(새로운 컬럼 추가시 기존 데이터는 NULL로 되기 때문에)
  • Add Columns 예제
  1. SQL> ALTER TABLE dept
      2  ADD (comments VARCHAR2(3));
  2. Table altered.
  3.  
  4. SQL> DESC dept
     Name                                      Null?    Type
     ----------------------------------------- -------- -------------------
  5.  DEPTNO                                    NOT NULL NUMBER(2)
     DNAME                                              VARCHAR2(14)
     LOC                                                VARCHAR2(13)
     COMMENTS                                           VARCHAR2(3)
  6.  
  7. SQL> SELECT * FROM dept;
  8.     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 예제
  1. // 크기를 늘리는 경우는 문제 안됨
  2. SQL> ALTER TABLE dept
      2  MODIFY (comments VARCHAR2(255));
  3. Table altered.
  4.  
  5. // 크기를 줄이는 경우는 컬럼 상태에 따라 달라짐
  6. // 이 예제의 경우 comments 컬럼의 모든 데이터가 null이므로 가능
  7. SQL> ALTER TABLE dept
      2  MODIFY (comments VARCHAR2(100));
  8. Table altered.

 

 

Drop Columns (P11-6)

  • 삭제보다는 SET UNUSED 사용권장
  • Drop Columns 예제
  1.  SQL> ALTER TABLE dept
      2  DROP (comments);
  2. Table altered.

 

 

Unused Columns (P11-7)

  • Unused Columns 한 데이터는 다시 되돌릴 수 없음
  • 삭제할 내용인데 시간상의 문제 등으로 임시적으로 사용못하게 한것이므로 나중에 삭제함
  • Unused Columns 예제
  1. SQL> DESC dept
     Name                                      Null?    Type
     ----------------------------------------- -------- -------------
  2.  DEPTNO                                    NOT NULL NUMBER(2)
     DNAME                                              VARCHAR2(14)
     LOC                                                VARCHAR2(13)
     COMMENTS                                           VARCHAR2(100)
  3.  
  4. SQL> ALTER TABLE dept
      2  SET UNUSED(comments);
  5. Table altered.
  6.  
  7. // SET UNUSED() 사용후 컬럼 안보임
  8. SQL> DESC dept
     Name                                      Null?    Type
     ----------------------------------------- -------- -------------
  9.  DEPTNO                                    NOT NULL NUMBER(2)
     DNAME                                              VARCHAR2(14)
     LOC                                                VARCHAR2(13)

이 글은 스프링노트에서 작성되었습니다.

Posted by Gungume
,