핑구

08. DDL(ALTER, DROP) 본문

JAVA 웹 개발/2. Oracle

08. DDL(ALTER, DROP)

코딩 펭귄 2022. 8. 13. 15:10
📅 2021.09.17

DDL

  • DDL의 경우 수정, 삭제 등이 일어남과 동시에 자동으로 COMMIT이 진행되기 때문에 명령어를 사용한 COMMIT, ROLLBACK을 진행하여도 확정 또는 되돌리기가 이루어지지 않는다. COMMIT, ROLLBACK은 DML 기능에만 적용된다.

 

ALTER

  • 테이블에 정의된 내용을 수정할 때 사용하는 데이터 정의어로 컬럼의 추가/삭제, 제약 조건의 추가/삭제, 컬럼의 자료형 변경, DEFAULT 값 변경, 테이블 명/컬럼 명/제약조건 명 변경 등이 가능하다.
  • 컬럼 추가
    ALTER TABLE DEPT_COPY
    ADD (CNAME VARCHAR2(20));
    
    ALTER TABLE DEPT_COPY
    ADD (LNAME VARCHAR2(40) DEFAULT '한국');
  • 컬럼 추가 시 DEFAULT 값을 설정할 수 있으며, 설정하지 않는 경우 DEFAULT로 NULL이 들어간다.
  • 컬럼 수정
    크기, 자료형, DEFAULT 값 모두 변경이 가능하다. DEFAULT 값을 수정하는 경우 현재 저장되어 있는 데이터 값도 같이 수정되는 것은 아니며, 이후에 DEFAULT로 설정하여 저장하는 값에 적용된다.
    만약 데이터가 하나라도 수정하려는 크기보다 큰 경우에는 데이터를 자를 수 없기 때문에 수정되지 않는다.
    ALTER TABLE DEPT_COPY
    MODIFY DEPT_TITLE VARCHAR2(30)
    MODIFY LOCATION_ID VARCHAR2(2)
    MODIFY CNAME CHAR(20)
    MODIFY LNAME DEFAULT '미국';
  • 제약 조건 추가
    ALTER TABLE DEPT_COPY ADD CONSTRAINT PK_DCOPY_DID PRIMARY KEY(DEPT_ID);
  • 이름 변경
    어떤 부분을 RENAME할 것인지 명시하는 경우 이름 변경이 가능하고, 테이블 이름을 변경하는 경우에는 어떤 테이블에 대해 변경할 것인지 미리 적어 주었기 때문에 따로 명시하지 않아도 된다.
    -- 제약조건 이름 변경
    ALTER TABLE DEPT_COPY
    RENAME CONSTRAINT SYS_C007696 TO NN_DCOPY_LID;
    
    -- 테이블 이름 변경
    ALTER TABLE DEPT_COPY
    RENAME TO DEPT_TEST;
    

 

DROP

  • 데이터베이스를 삭제하는 구문이다.
  • 컬럼 삭제
    데이터가 존재하는 컬럼도 삭제가 가능하다.
    테이블은 최소 한 개 이상의 컬럼을 가지고 있어야 하기 때문에 컬럼이 하나 남은 경우 더 이상 삭제할 수 없다.
    ALTER TABLE DEPT_COPY2
    DROP COLUMN CNAME;
  • 제약 조건이 걸려 있는 경우에는 해당 컬럼을 삭제할 수 없지만, 제약 조건을 함께 삭제하는 경우 삭제가 가능하다.
    ALTER TABLE TB1
    DROP COLUMN PK1 CASCADE CONSTRAINTS;
  • 테이블 삭제
    DROP TABLE DEPT_TEST;
  • 제약 조건 삭제
    DROP TABLE DEPT_TEST
    CASCADE CONSTRAINTS;

'JAVA 웹 개발 > 2. Oracle' 카테고리의 다른 글

10. SEQUENCE  (0) 2022.08.13
09. VIEW  (0) 2022.08.13
07.DML(INSERT, UPDATE, DELETE)  (0) 2022.08.13
06. DDL(CREATE)  (0) 2022.08.13
05. 서브쿼리  (0) 2022.06.08