Oracle/DB22010. 12. 24. 09:41


http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=/com.ibm.db29.doc.sqlref/db2z_sql_altersequence.htm

기본적인 DB2 iSERIES의 운영 명령어 중 ALTER TABLE 명령어 입니다.

 

  1. 테이블 생성 (CREATE TABLE)
					
      1) 아래의 컬럼(필드)을 갖는 직원테이블 t_emp를 생성

              사번 1 ~ 9999 NULL 허용하지 않음
              이름 문자열 20 자리 (Primary Key)
              부서 문자열  4 자리

             CREATE TABLE t_emp
                    ( empid   INT      NOT NULL,
                      empname CHAR(20) NOT NULL,
                      depcd   CHAR(04),
                      PRIMARY KEY(empid)
                    )

      2) 아래의 컬럼(필드)을 갖는 부서테이블 t_dep를 생성

              부서코드 문자열 4자리 NULL 허용하지 않음
              부서이름 문자열 0 ~ 50자리 NULL 허용하지 않음

             CREATE TABLE t_dep
                    ( depcd   CHAR(4)     NOT NULL,
                      depname VARCHAR(50) NOT NULL)
                    )

      3) 키가 일련번호(자동증가) 컬럼인 부서테이블 t_dep를 생성

             CREATE TABLE t_dep 
                    ( seq INTEGER NOT NULL 
                          GENERATED ALWAYS AS IDENTITY 
                          (START WITH 1, INCREMENT BY 1, NO CACHE ), 
                      ... 
                      primary key (SEQNO) 
                    )

  2. 테이블 변경 (ALTER TABLE)
					
      1) 위의 직원테이블에 급여컬럼 salary를 추가
             ALTER TABLE t_emp
                   ADD COLUMN salary INT

      2) 급여컬럼의 이름을 salary에서 pay로 변경
             ALTER TABLE t_emp
                   ALTER COLUMN salary
                   SET DEFAULT 'pay'

      3) 직원테이블에서 급여컬럼 pay를 삭제
             ALTER TABLE t_emp
                   DROP COLUMN pay CASCADE

          View, Index, Constraints 들도 같이 삭제 됩니다

      4) 부서테이블에서 관리자명 컬럼 mgrname을 Unique하게 추가하고
         기존에 있던 부서코드 컬럼을 PRIMARY KEY로 설정
             ALTER TABLE t_dep
                   ADD COLUMN mgrname
                   ADD UNIQUE mgrname
                   ADD PRIMARY KEY depcd

      5) 관리자명 컬럼을 코드타입 933 (A(English Only) -> O(Open)) 으로 변경
             ALTER TABLE t_dep
                   ALTER COLUMN mgrname
                   SET DATA TYPE CHARACTER(20)
                   CCSID 933 NOT NULL WITH DEFAULT

          PB, VB, JAVA 등에서 한글 사용시 CCSID 933을 사용하세요

  3. 테이블 삭제 (DROP TABLE)

      1) 직원테이블을 삭제 
             DROP TABLE t_emp

          View, Index, Constraints 가 존재해도 삭제 됩니다

      2) 직원테이블을 View, Index, Constraints 가 없는 경우에만 삭제
             DROP TABLE t_emp RESTRICT
 
출처 : http://www.acronet.kr/as400/sql400/s_sql21.html
Posted by Julyus