달나라 노트

Redshift : create table, drop table (테이블 생성하고 삭제하기) 본문

SQL/Redshift

Redshift : create table, drop table (테이블 생성하고 삭제하기)

CosmosProject 2021. 1. 21. 20:52
728x90
반응형

 

 

 

 

create table test_schema.test_table (
    col1    varchar(max),
    col2    bigint(max),
    col3    varchar(max)
)
;

create table은 위처럼 테이블을 생성시킬 수 있도록 합니다.

위 테이블은 col1, col2, col3라는 3개의 column을 가질 것이고, 각 컬럼에 들어갈 값들의 datatype은 순서대로 varchar(문자), bigint(정수), varchar(문자)입니다.

 

 

 

 

 

create table if not exists test_schema.test_table (
    col1    varchar(max),
    col2    bigint(max),
    col3    varchar(max)
)
;

또한 if not exists라는 옵션을 추가할 수도 있습니다.

이것이 왜 필요할까요?

create table로 test_shcema.test_table 이라는 테이블을 만들려고 합니다.

근데 만약 이미 test_shcema.test_table라는 테이블이 있다면? 당연히 에러가 뜰 것입니다.

 

이런 경우를 방지하기 위해 if not exists라는 옵션을 추가하면, 이미 테이블이 존재할 경우 테이블 생성을 하지 않고 에러 없이 넘어갑니다.

 

 

 

 

 

create temp table test_table (
    col1    varchar(max),
    col2    bigint(max),
    col3    varchar(max)
)
;

만약 create temp table을 사용하게 되면 permanant table이 아닌 temporary table을 만들게 됩니다.

temporary table은 서버와의 연결이 끊길 때 자동으로 삭제됩니다.

따라서 temporary table을 사용하면 query가 길어질 때 query를 로직별로 다르게 하여 query의 가독성을 높일 수 있습니다.

 

 

 

 

 

 

create table test_schema.test_table (
    col1        varchar,
    20210305    varchar,
    20210306    varchar
)
;

create table 또는 create temp table을 이용할 때 column name은 무조건 텍스트여야합니다.

따라서 위처럼 column name을 숫자로 입력하면 Error가 발생합니다.

 

 

만약 숫자를 column name으로 사용하려면 아래처럼 숫자로 된 column name을 쌍따옴표로 감싸주면됩니다.

create table test_schema.test_table (
    col1          varchar,
    "20210305"    varchar,
    "20210306"    varchar
)
;

 

 

 

 

 

 

 

create temp table test_table as
select	*
from test_schema.test_table_2 as tt
--
where 1=1
and tt.col1 is not null
;

 

create table(또는 create temp table)을 사용할 때 select문을 이용해서 table의 생성과 동시에 data를 삽입할 수 있습니다.

상당히 유용한 방법이죠.

 

 

 

 

 

drop table test_schema.test_table;

테이블의 삭제는 간단합니다.

위처럼 drop table을 이용하면 됩니다.

 

 

 

drop table if exists test_schema.test_table;

마찬가지로 drop table에는 if exists라는 옵션을 추가할 수 있습니다.

drop table을 이용하여 어떤 table을 삭제하려고 했는데 만약 그 table이 없다면 에러가 뜹니다.

이때 if exists라는 옵션을 추가하면 삭제할 테이블이 존재하지 않는 경우 별도의 작업 없이(또한 에러도 없이) 그냥 넘어가게 됩니다.

 

 

 

 

728x90
반응형
Comments