본문 바로가기

데이터베이스/SQL & PL/SQL

[SQL] 테이블을 복제하자, AS SELECT!!

 

 

Structured Query Language

 

 

 

 

 

 

 

 

 

- AS SELECT를 활용한 테이블 복제 -

 

 

 

 

 

 이번 글에서는 테이블을 만드는 또하나의 방법인 AS SELECT 를 활용한 방법입니다.

 

우선 테이블을 만드는 방법은 다음 글을 참고하시면 되겠습니다.

 

 AS SELECT를 이용해서 테이블을 만들게 되면 기존의 테이블의 가져와서 똑같이 복제합니다.

그렇기 때문에, 테이블 생성시에 기존의 데이터 유형을 일일이 다시 재정의 하지 않아도 됩니다.

 

하지만 여기서 주의해야할 점!!

NOT NULL을 제외한 나머지 제약(Constraint)-기본키, 외부키, Unique, 등등-이 적용되지 않습니다. 

 이런 제약을 다시 넣을려고 한다면, Alter table 명령어를 활용해야 합니다.

 

 우선, 다음과 같이 작성합니다.

CREATE TABLE 테이블 명

AS SELECT * FROM 복제할 테이블명;

 

예제를 위해서, 테이블을 다음과 같이 만듭니다.

 

 

 

 

desc 명령어로 테이블을 조회합니다.  테이블이 잘 만들어 졌군요.

 

그런 다음, AS SELECT 구문을 통해 다음과 같이 테이블을 만들어 봅니다.

 

desc 명령어를 통해서 복제한 테이블을 조회합니다.

 

 복제할 타겟이 된  기존의 테이블과 눈여겨 비교해보면,

 NOT NULL 을 제외한 나머지 제약은 다 지워진 것을 확인할 수 있습니다.

심지어, Default 값도 제외가 되었네요.

 

 더 부연의 설명이 필요 없을 것 같으므로, 이상 글을 줄이겠습니다.