일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- dataframe
- SQL
- Tkinter
- string
- hive
- array
- c#
- math
- Excel
- list
- Github
- Mac
- Java
- gas
- PANDAS
- Kotlin
- Python
- matplotlib
- Google Spreadsheet
- GIT
- PostgreSQL
- Apache
- google apps script
- 파이썬
- numpy
- Google Excel
- Redshift
- PySpark
- django
- Today
- Total
달나라 노트
Redshift : create table, drop table (테이블 생성하고 삭제하기) 본문
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라는 옵션을 추가하면 삭제할 테이블이 존재하지 않는 경우 별도의 작업 없이(또한 에러도 없이) 그냥 넘어가게 됩니다.
'SQL > Redshift' 카테고리의 다른 글
Redshift : mod (나누기 후의 나머지 반환) (0) | 2021.01.22 |
---|---|
Redshift : with (임시 테이블 (같은 것) 만들어 이용하기) (0) | 2021.01.21 |
Redshift : position (문자열에서 특정 문자 위치 찾기) (0) | 2021.01.02 |
Redshift : listagg (여러 행 데이터 합치기) (0) | 2020.12.23 |
Redshift : regexp_replace (regular expression replace) (0) | 2020.12.23 |