본문 바로가기
Data/Oracle

[Oracle] 테이블 변경 및 테이블 복사 / ALTER TABLE / CTAS

by prinha 2020. 9. 16.
반응형

 

 

[Oracle] 오라클 테이블 / CREATE TABLE

테이블(TABLE) 데이터를 넣고 수정하고 삭제하는, 즉 데이터를 담고 있는 객체가 테이블이다. 테이블은 DBMS상에서 가장 기본적인 객체로 로우(행)과 컬럼(열)으로 구성된 2차원 형태(표)의 객체이��

prinha.tistory.com


테이블 변경

CREATE문으로 테이블을 생성한 후 불가피하게 수정해야 할 상황이 발생할 때가 많다.

최초 설계를 잘못한 원인도 있고 요구사항이 변경되기 때문이다.

ALTER TABLE문을 사용해 테이블을 수정할 수 있다.

CREATE TABLE ex2_10 ( --예시 테이블
    Col1        VARCHAR2(10) NOT NULL,
    Col2        VARCHAR2(10) NULL,
    Create_date DATE DEFAULT SYSDATE);

 

1) 컬럼명 변경 : RENAME -> Col1 컬럼 이름을 Col11로 변경

ALTER TABLE [스키마.]테이블명 RENAME COLUMN 변경전컬럼명 TO 변경후컬럼명;

ALTER TABLE ex2_10 RENAME COLUMN Col1 TO Col11;

 

2) 컬럼 타입 변경 : MODIFY -> Col2 컬럼을 VARCHAR2(10)에서 VARCHAR2(30)으로 변경

ALTER TABLE [스키마.]테이블명 MODIFY 컬럼명 데이터타입;

ALTER TABLE ex2_10 MODIFY Col2 VARCHAR2(30);

 

3) 컬럼 추가 : ADD -> Col3 NUMBER 타입으로 신규 생성

ALTER TABLE [스키마.]테이블명 ADD 컬럼명 데이터타입;

ALTER TABLE ex2_10 ADD Col3 NUMBER;

 

4) 컬럼 삭제 : DROP -> Col3 컬럼 삭제

ALTER TABLE [스키마.]테이블명 DROP COLUMN 컬럼명;

ALTER TABLE ex2_10 DROP COLUMN Col3 ;

 

5) 제약조건 추가 : ADD CONSTRAINTS -> Col11에 기본키 추가

ALTER TABLE [스키마.]테이블명 ADD CONSTRAINTS 제약조건명 PRIMARY KEY (컬럼명, ..)

ALTER TABLE ex2_10 ADD CONSTRAINTS pk_ex2_10 PRIMARY KEY (col11);

 

6) 제약조건 삭제 : DROP CONSTRAINTS -> Col11에서 기본키 삭제

ALTER TABLE [스키마.]테이블명 DROP CONSTRAINTS 제약조건명;

ALTER TABLE ex2_10 DROP CONSTRAINTS pk_ex2_10;

테이블 복사

CREATE TABLE …AS의 앞 글자를 따서 ‘CTAS(씨타스라고 읽음)’라고 부르기도 하는데 정식 명칭은 아니다.

이 구문을 사용하면 테이블 구조와 데이터가 모두 신규 테이블로 복사된다.

CREATE TABLE [스키마.]테이블명 AS
SELECT 컬럼1, 컬럼2, ...
FROM 복사할 테이블명;

CREATE TABLE ex2_9_1 AS
SELECT *
FROM ex2_9;

 

 

 

반응형