티스토리 뷰

오라클 DDL / 테이블 생성, 변경, 삭제, RENAME, TRUNCATE


오라클 DDL은 Data Definition Language입니다. 데이터를 정의하는 언어로 테이블에 대한 생성, 변경, 삭제 시 사용됩니다. 자주 사용해도 명령어가 생각이 나지 않을 때가 있는데요. 저도 가끔 생각이 나지 않아 인터넷을 검색합니다. 그래서 이번 기회에 정리해보려고 합니다.


1. 테이블 생성(CREATE TABLE)

  - 테이블을 생성할 때 사용하는 명령어입니다. 테이블 생성시에 필요한 정보는 테이블명, 컬럼명, 컬럼 데이터 타입, 제약조건 등이 있습니다. 예제를 통해서 자세히 알아보도록 하겠습니다.

테이블 생성 스크립트는 위와 같습니다. 테이블명은 최대 30자(byte)까지 가능하며, 숫자로 시작이 불가능합니다. 오라클에서 사용하는 키워드 및 예약어 또한 사용이 불가능합니다. 공백도 불가능합니다. 제약 조건에는 null 값 허용 안 함 및 unique 타입인 중복 값을 허용하지 않도록 설정할 수도 있습니다. 그 외 외부 테이블의 데이터 참조 필드로 FOREIGN KEY로 지정도 가능합니다. 컬럼 생성시 사용되는 문자 타입에는 크게 자료형, 날짜형, 숫자형, 이미지형이 있습니다. 자료형에는 CHR, VARCHAR2등이 있습니다. 숫자형에는 NUMBER가 있습니다. 날짜형에는 DATE, TIMESTAMP가 있습니다. 이미지형에는 CLOB, BLOB등이 있습니다.

2. 테이블 변경(ALTER TABLE)

  - 테이블의 구조를 변경하기 위한 명령입니다. 컬럼의 추가, 삭제, 변경할 때 사용합니다. 

  - ALTER TABLE [테이블명] ADD([컬럼명] [자료형]); 

  - ALTER TABLE [테이블명] MODIFY([컬럼명] [자료형]);

  - ALTER TABLE [테이블명] DROP COLUMN [컬럼명];

ADD를 통해 컬럼을 추가할 수 있습니다. MODIFY를 통해 컬럼의 자료형 및 길이를 변경할 수 있습니다. DORP을 통해서 컬럼을 삭제할 수 있습니다. MODIFY를 통해 자리수 및 자료형을 변경할 경우 데이터가 없는 경우에는 변경이 불가능합니다. 그리고 길이를 변경할 경우 데이터가 길이보다 큰 값이 있을 경우 불가능합니다.

3. 테이블 삭제(DROP TABLE)

  - 테이블을 전체를 삭제할 때 사용하는 명령어 입니다. 데이터 뿐만 아니라 테이블도 같이 삭제가 됩니다. 

  - DROP TALE [테이블명] PURGE;


오라클의 경우 테이블 삭제 시 완전히 삭제되지 않고 임시로 테이블로 남아 있습니다. 윈도우의 쓰레기 통과 같습니다. 만약 깨끗이 삭제를 하고 싶으시다면 명령어 마지막에 PURGE를 같이 실행하시면 쓰레기통에 남지 않고 완전 삭제가 됩니다.


4. 테이블 이름변경(RENAME)

  - 테이블의 이름 및 컬럼의 이름을 변경하는 명령어 입니다.

  - RENAME [변경전테이블명] TO [변경후테이블명];

  - ALTER TALBE [테이블명] RENAME COLUMN [변경전컬럼명] TO [변경후컬럼명];

RENAME 을 통해서 테이블명을 변경 할 수 있습니다. 또한 ALTER TABLE RENAME을 통해서 컬럼명도 변경이 가능합니다. 

5. 테이블 모든 데이터 삭제(TRUNCATE)

  - 테이블의 데이터를 모두 삭제하는 명령입니다.

  - TRUNCATE TABLE [테이블명];

DELETE와 기능은 같으나 ROLLBACK이 안 되니 주의하셔야 합니다. 롤백이 안된다면 당연히 DELETE보다 빠르게 수행이 됩니다. 이유는 DELETE의 경우 UNDO DATA를 생성하지만 TRUNCATE의 경우 UNDO DATA를 생성 없이 삭제하기 때문입니다.


그럼 모두 즐프하세요~

댓글