CREATE TABLE

CREATE TABLE

지정한 컬럼을 가진 비어 있는 새 테이블을 만들 때 쓰는 명령어예요. 데이터까지 함께 넣고 싶다면 CREATE TABLE AS를 사용해요.

출처: 문서

본문

Synopsis

CREATE [ OR REPLACE ] TABLE [ IF NOT EXISTS ]
table_name (
  { column_name data_type [ DEFAULT default ] [ NOT NULL ]
      [ COMMENT comment ]
      [ WITH ( property_name = expression [, ...] ) ]
  | LIKE existing_table_name
      [ { INCLUDING | EXCLUDING } PROPERTIES ]
  }
  [, ...]
)
[ COMMENT table_comment ]
[ WITH ( property_name = expression [, ...] ) ]

Description

지정한 컬럼을 가진 새롭고 빈 테이블을 만들어요. 데이터가 있는 테이블은 CREATE TABLE AS로 만들어요.

선택적인 OR REPLACE 절은 지정한 이름의 기존 테이블을 새 테이블 정의로 교체해요. 테이블 교체 지원 여부는 커넥터마다 달라요. 자세한 내용은 커넥터 문서를 참고하세요.

선택적인 IF NOT EXISTS 절은 테이블이 이미 존재할 때 오류를 무시해요.

OR REPLACEIF NOT EXISTS는 함께 사용할 수 없어요.

선택적인 WITH 절은 새로 만든 테이블이나 개별 컬럼에 속성을 설정할 때 사용해요. 사용 가능한 테이블 속성을 모두 보려면 다음 쿼리를 실행하세요:

SELECT * FROM system.metadata.table_properties

사용 가능한 컬럼 속성을 모두 보려면 다음 쿼리를 실행하세요:

SELECT * FROM system.metadata.column_properties

LIKE 절은 기존 테이블의 모든 컬럼 정의를 새 테이블에 포함할 때 사용해요. LIKE 절은 여러 번 지정할 수 있으며, 여러 테이블에서 컬럼을 복사할 수 있어요.

INCLUDING PROPERTIES를 지정하면 모든 테이블 속성이 새 테이블로 복사돼요. WITH 절이 복사된 속성 중 하나와 같은 속성 이름을 지정하면 WITH 절의 값이 사용돼요. 기본 동작은 EXCLUDING PROPERTIES예요. INCLUDING PROPERTIES 옵션은 최대 한 테이블에만 지정할 수 있어요.

Examples

새 테이블 orders를 만들려면:

CREATE TABLE orders (
  orderkey bigint,
  orderstatus varchar,
  totalprice double,
  orderdate date
)
WITH (format = 'ORC')

테이블이 아직 없을 때 orders 테이블을 만들고, 테이블·컬럼 주석과 기본값을 가진 컬럼을 추가하려면:

CREATE TABLE IF NOT EXISTS orders (
  orderkey bigint,
  orderstatus varchar,
  totalprice double COMMENT 'Price in cents.',
  orderdate date,
  status varchar DEFAULT 'created'
)
COMMENT 'A table to keep track of orders.'

orders의 컬럼을 사용하고 앞뒤로 추가 컬럼을 더한 bigger_orders 테이블을 만들려면:

CREATE TABLE bigger_orders (
  another_orderkey bigint,
  LIKE orders,
  another_orderdate date
)

See also

ALTER TABLE, DROP TABLE, CREATE TABLE AS, SHOW CREATE TABLE 명령과 함께 사용해요.

더 알아보기 (Learn more)

데이터가 있는 테이블을 만드는 CREATE TABLE AS와 테이블 구조를 바꾸는 ALTER TABLE도 함께 확인해 보세요.