ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Oracle - DDL (Data Definition Language) ALTER, DROP - Part 3
    데이터베이스/Oracle 2020. 11. 22. 03:06
    728x90
    반응형

    ALTER

    ALTER테이블에 정의된 내용을 수정할때 사용하는 데이터 정의어컬럼의 추가/삭제제약조건의 추가/삭제컬럼의 자료형 변경DEFAULT 값 변경, 테이블 명/컬럼 명/제약 조건 명 변경 등을 할 수 있다.

     

     

    ALTER 컬럼 추가

    ADD를 사용히하여 테이블의 컬럼을 추가한다.

    [ 컬럼 추가 예시 ]

    ALTER TABLE DEPT_COPY
    ADD (CNAME VARCHAR2(20)); -- CNAME 컬럼추가

    ADD를 사용하여 CNAME컬럼을 추가한다.

     

     

    ALTER TABLE DEPT_COPY
    ADD (LNAME VARCHAR2(40) DEFAULT ‘한국’); -- 컬럼 추가 및 기본값 설정

    ADD사용하여 LNAME컬럼 추가와 동시에 기본값을 부여한다.

     

     

     

    ALTER 컬럼 수정

    MODIFY를 사용하여 테이블의 컬럼을 수정한다.

     

    [ 컬럼 수정 예시 ]

    ALTER TABLE DEPT_COPY
    MODIFY DEPT_ID CHAR(3) -- char 3byte로 변경
    MODIFY DEPT_TITLE VARCHAR(30) -- varchar 30byte로 변경
    MODIFY LOCATION_ID VARCHAR2(2) -- varchar2 2byte로 변경
    MODIFY CNAME CHAR(20) -- char 20byte로 변경
    MODIFY LNAME DEFAULT '미국'; -- 기본값을 미국으로 변경

    MODIFY를 사용하여 테이블 컬럼의 데이터형을 바꾼다.

     

     

     

    ALTER 컬럼 삭제

    DROP을 사용하여 테이블의 컬럼을 삭제한다.

     

    [ 컬럼 삭제 예시 ]

    ALTER TABLE DEPT_COPY2
    DROP COLUMN DEPT_ID; -- DEPT_ID 컬럼 삭제

    DROP을 사용하여 DEPT_ID 컬럼을 삭제한다.

     

    * 컬럼 삭제 시 참조하고 있는 컬럼이 있다면 컬럼 삭제가 불가능하다.

     

    하지만 CASCADE CONSTRAINT를 사용하여 삭제 가능하다.

    ALTER TABLE TB1
    DROP COLUMN PK CASCADE CONSTRAINT;

     

     

     

     

     

    ALTER 제약조건 추가

    ADD CONSTRAINT를 사용하여 테이블 컬럼의 제약조건을 추가한다.

     

    [ 제약 조건 추가 예시]

    ALTER TABLE DEPT_COPY
    ADD CONSTRAINT DCOPY_DID_PK PRIMARY KEY(DEPT_ID) -- PRIMARY KEY 추가
    ADD CONSTRAINT DCOPY_DTITLE_UNQ UNIQUE(DEPT_TITLE) -- UNIQUE 추가
    MODIFY LNAME CONSTRAINT DCOPY_LNAME_NN NOT NULL; -- NOT NULL 추가

    ADD CONSTRAINT를 사용하여 제약 조건을 추가한다.

     

    추가 후 확인해보자.

    SELECT UC.CONSTRAINT_NAME,
    UC.CONSTRAINT_TYPE,
    UC.TABLE_NAME,
    UCC.COLUMN_NAME,
    UC.SEARCH_CONDITION
    FROM USER_CONSTRAINTS UC
    JOIN USER_CONS_COLUMNS UCC ON (UC.CONSTRAINT_NAME = UCC.CONSTRAINT_NAME)
    WHERE UC.TABLE_NAME = ‘DEPT_COPY

     

     

    ALTER 제약조건 삭제

    DROP CONSTRAINT를 사용하여 테이블 컬럼의 제약조건을 삭제한다.

     

    [ 제약 조건 삭제 예시]

    ALTER TABLE DEPT_COPY
    DROP CONSTRAINT DCOPY_DID_PK -- 삭제
    DROP CONSTRAINT DCOPY_DTITLE_UNQ -- 삭제
    MODIFY LNAME NULL; -- 삭제

    DROP CONSTRAINT를 사용하여 제약 조건을 삭제한다.

     

     

     

    ALTER 컬럼 이름 변경

    RENAME을 사용하여컬럼의 이름을 변경할 수 있다.

     

    [ 컬럼 이름 변경 예시 ]

    ALTER TABLE DEPT_COPY
    RENAME COLUMN DEPT_TITLE TO DEPT_NAME; -- 컬럼 이름 변경

    RENAME을 사용하여 DEPT_TITLE에서 DEPT_NAME으로 컬럼 이름 변경한다.

     

     

     

    ALTER 제약조건 이름 변경

    RENAME CONSTRAINT를 사용하여 제약조건의 이름을 변경할 수 있다.

     

    [ 제약조건 이름 변경]

    ALTER TABLE USER_FOREIGNKEY
    RENAME CONSTRAINT SYS_C007211 TO UF_UP_NN; -- UF_UP_NN로 변경
    
    ALTER TABLE USER_FOREIGNKEY
    RENAME CONSTRAINT SYS_C007212 TO UF_UN_PK; -- UF_UP_NN로 변경
    
    ALTER TABLE USER_FOREIGNKEY
    RENAME CONSTRAINT SYS_C007213 TO UF_UI_UQ; -- UF_UI_UQ로 변경
    
    ALTER TABLE USER_FOREIGNKEY
    RENAME CONSTRAINT SYS_C007214 TO UF_GC_FK; -- UF_GC_FK로 변경

    RENAME CONSTRAINT를 사용하여 제약조건의 이름 변경이 가능하다.

     

     

     

    ALTER 테이블 이름 변경

    RENAME TO를 사용하여 테이블 이름을 바꿀 수 있다.

     

    [ 테이블 이름 변경 예시]

    ALTER TABLE DEPT_COPY
    RENAME TO DEPT_TEST;

     

    또는 이러한 방식으로 바꿀 수 있다.

    RENAME DEPT_COPY TO DEPT_TEST;

     

     

     

    DROP

    DROP이란 데이터베이스 객체를 삭제하는 구문이다.

     

    [ DROP 예시 ]

    DROP TABLE DEPT_TEST CASCADE CONSTRAINT;

     

    결과는 이러하다.

    728x90
    반응형
Designed by Tistory.