DESCRIBE TABLE

테이블의 열이나 테이블의 스테이지 속성 세트(현재 값과 기본값)를 설명합니다.

DESCRIBE는 DESC로 축약할 수 있습니다.

참고 항목:

DROP TABLE , ALTER TABLE , CREATE TABLE , SHOW TABLES

DESCRIBE VIEW

구문

{ DESCRIBE | DESC } TABLE <name> [ TYPE =  { COLUMNS | STAGE } ]
Copy

매개 변수

name

설명할 테이블의 식별자를 지정합니다. 식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

TYPE = COLUMNS | STAGE

테이블의 열이나 테이블의 스테이지 속성 세트(현재 값과 기본값)를 표시할지 여부를 지정합니다.

기본값: TYPE = COLUMNS

사용법 노트

  • 이 명령은 테이블의 오브젝트 매개 변수를 표시하지 않습니다. SHOW PARAMETERS IN TABLE 를 대신 사용하십시오.

  • DESCRIBE TABLE과 DESCRIBE VIEW 는 서로 교환할 수 있습니다. 두 명령 모두 지정된 테이블이나 뷰에 대한 세부 정보를 반환하지만, 뷰에는 스테이지 속성이 없으므로 TYPE = STAGE 는 뷰에 적용되지 않습니다.

  • If schema evolution is enabled on the table, the output contains a schema_evolution_record column. This column was introduced with the 2023_08 번들(일반적으로 활성화됨). For more information, see 테이블 스키마 진화.

  • 출력에는 열에 직접 설정된 마스킹 정책</user-guide/security-column-intro>`을 나타내는 ``policy name` 열이 포함됩니다. 열이 :doc:`태그 기반 마스킹 정책</user-guide/tag-based-masking-policies>`으로 보호되는 경우 Snowflake는 :code:`NULL`을 반환합니다.

    열에 마스킹 정책이 설정되어 있지 않거나 Snowflake 계정이 Enterprise Edition 이상이 아닌 경우 Snowflake는 :code:`NULL`을 반환합니다.

  • 출력에는 열에 설정된 개인정보 보호 도메인 을 나타내는 privacy domain 열이 포함됩니다.

    열에 개인정보 보호 도메인이 설정되어 있지 않거나 Snowflake 계정이 Enterprise Edition 이상이 아닌 경우 Snowflake는 NULL 을 반환합니다.

  • 이 명령의 출력을 후처리하기 위해 파이프 연산자 (->>) 또는 RESULT_SCAN 함수를 사용할 수 있습니다. 두 구문 모두 출력을 쿼리할 수 있는 결과 세트로 간주합니다.

    예를 들어, 파이프 연산자 또는 RESULT_SCAN 함수를 사용하여 SHOW 명령 출력에서 특정 열을 선택하거나 행을 필터링할 수 있습니다.

    출력 열을 참조하는 경우 열 이름에 :ref:`큰따옴표로 묶인 식별자<label-delimited_identifier>`를 사용합니다. 예를 들어, 출력 열 ``type``을 선택하려면 ``SELECT “type”``을 지정합니다.

    SHOW 명령의 출력 열 이름은 소문자이므로 큰따옴표로 묶인 식별자를 사용해야 합니다. 큰따옴표는 SELECT 목록 또는 WHERE 절의 열 이름이 스캔된 SHOW 명령 출력과 일치하도록 보장합니다.

출력

TYPE = COLUMNS 인 경우 명령 출력은 다음과 같은 속성과 메타데이터를 제공합니다.

설명

name

테이블의 열 이름입니다.

type

테이블의 열 데이터 타입입니다. 열에 대해 데이터 정렬 이 지정된 경우 데이터 정렬 사양이 포함됩니다.

kind

Snowflake 테이블의 경우 이 값은 항상 COLUMN 입니다.

null?

열이 NULL 값(Y 또는 N)을 허용하는지 여부입니다.

default

열의 기본값(있는 경우)이며, 그렇지 않은 경우 NULL 입니다.

primary key

열이 기본 키(또는 다중 열 기본 키의 일부로, Y 또는 N 임)인지 여부입니다.

unique key

열에 UNIQUE 제약 조건(Y 또는 N)이 있는지 여부입니다.

check

향후 사용을 위해 예약되어 있습니다.

expression

향후 사용을 위해 예약되어 있습니다.

comment

열에 대해 설정된 설명(있는 경우)이며, 그렇지 않은 경우 NULL 입니다.

policy name

열에 대해 설정된 마스킹 정책 (있는 경우)이며, 그렇지 않은 경우 NULL 입니다.

privacy domain

열에 대해 설정된 개인정보 보호 도메인 (있는 경우)이며, 그렇지 않은 경우 NULL 입니다.

schema_evolution_record

주어진 테이블 열에 대해 최근에 트리거된 Schema Evolution에 대한 정보를 기록합니다. 이 열에는 다음 하위 필드가 포함됩니다.

  • EvolutionType: 트리거된 스키마 진화의 유형(ADD_COLUMN 또는 DROP_NOT_NULL)입니다.

  • EvolutionMode: The triggering ingestion mechanism (COPY, SNOWPIPE, or SNOWPIPE_STREAMING).

  • FileName: The file name that triggered the evolution (NULL for SNOWPIPE_STREAMING).

  • TriggeringTime: 열이 진화한 대략적인 시간입니다.

  • QueryId or PipeId: A unique identifier of the triggering query or pipe (QUERY ID for COPY, PIPE ID for SNOWPIPE, or NULL for SNOWPIPE_STREAMING).

  • Pipe name: Fully qualified pipe name that triggered schema evolution (SNOWPIPE_STREAMING only).

  • 채널 이름: 스키마 진화를 트리거한 채널입니다(SNOWPIPE_STREAMING만 해당).

  • offsetTokenUpperBound: 스키마 진화 트리거 시의 오프셋 또는 그 이전의 오프셋입니다(SNOWPIPE_STREAMING만 해당).

TYPE = STAGE 인 경우 명령 출력은 테이블의 스테이지 속성에 대한 현재 값과 기본값을 제공합니다. 예: 스테이지 속성 설명하기 섹션을 참조하십시오.

다음 예에서는 테이블을 설명하는 방법을 보여줍니다.

예: 제약 조건과 기타 열 특성이 있는 테이블 설명하기

제약 조건이 있는 2개의 열을 포함하여 5개의 열이 있는 테이블을 만듭니다. 한 열에 DEFAULT 값과 설명을 지정합니다.

CREATE OR REPLACE TABLE desc_example(
  c1 INT PRIMARY KEY,
  c2 INT,
  c3 INT UNIQUE,
  c4 VARCHAR(30) DEFAULT 'Not applicable' COMMENT 'This column is rarely populated',
  c5 VARCHAR(100));
Copy

테이블의 열 설명하기:

DESCRIBE TABLE desc_example;
Copy
+------+--------------+--------+-------+------------------+-------------+------------+-------+------------+---------------------------------+-------------+----------------+-------------------------+
| name | type         | kind   | null? | default          | primary key | unique key | check | expression | comment                         | policy name | privacy domain | schema evolution record |
|------+--------------+--------+-------+------------------+-------------+------------+-------+------------+---------------------------------+-------------+----------------+-------------------------|
| C1   | NUMBER(38,0) | COLUMN | N     | NULL             | Y           | N          | NULL  | NULL       | NULL                            | NULL        | NULL           | NULL                    |
| C2   | NUMBER(38,0) | COLUMN | Y     | NULL             | N           | N          | NULL  | NULL       | NULL                            | NULL        | NULL           | NULL                    |
| C3   | NUMBER(38,0) | COLUMN | Y     | NULL             | N           | Y          | NULL  | NULL       | NULL                            | NULL        | NULL           | NULL                    |
| C4   | VARCHAR(30)  | COLUMN | Y     | 'Not applicable' | N           | N          | NULL  | NULL       | This column is rarely populated | NULL        | NULL           | NULL                    |
| C5   | VARCHAR(100) | COLUMN | Y     | NULL             | N           | N          | NULL  | NULL       | NULL                            | NULL        | NULL           | NULL                    |
+------+--------------+--------+-------+------------------+-------------+------------+-------+------------+---------------------------------+-------------+----------------+-------------------------+

예: 열에 마스킹 정책이 있는 테이블 설명하기

일반 마스킹 정책 을 만든 다음, 한 열에 마스킹 정책이 설정된 desc_example 테이블을 다시 만듭니다. (이 예제를 실행하려면 먼저 email_mask 마스킹 정책을 만듭니다.)

CREATE OR REPLACE TABLE desc_example(
  c1 INT PRIMARY KEY,
  c2 INT,
  c3 INT UNIQUE,
  c4 VARCHAR(30) DEFAULT 'Not applicable' COMMENT 'This column is rarely populated',
  c5 VARCHAR(100) WITH MASKING POLICY email_mask);
Copy
+------+--------------+--------+-------+------------------+-------------+------------+-------+------------+---------------------------------+---------------------------------+----------------+-------------------------+
| name | type         | kind   | null? | default          | primary key | unique key | check | expression | comment                         | policy name                     | privacy domain | schema evolution record |
|------+--------------+--------+-------+------------------+-------------+------------+-------+------------+---------------------------------+---------------------------------+----------------|-------------------------|
| C1   | NUMBER(38,0) | COLUMN | N     | NULL             | Y           | N          | NULL  | NULL       | NULL                            | NULL                            | NULL           | NULL                    |
| C2   | NUMBER(38,0) | COLUMN | Y     | NULL             | N           | N          | NULL  | NULL       | NULL                            | NULL                            | NULL           | NULL                    |
| C3   | NUMBER(38,0) | COLUMN | Y     | NULL             | N           | Y          | NULL  | NULL       | NULL                            | NULL                            | NULL           | NULL                    |
| C4   | VARCHAR(30)  | COLUMN | Y     | 'Not applicable' | N           | N          | NULL  | NULL       | This column is rarely populated | NULL                            | NULL           | NULL                    |
| C5   | VARCHAR(100) | COLUMN | Y     | NULL             | N           | N          | NULL  | NULL       | NULL                            | HT_SENSORS.HT_SCHEMA.EMAIL_MASK | NULL           | NULL                    |
+------+--------------+--------+-------+------------------+-------------+------------+-------+------------+---------------------------------+---------------------------------+----------------+-------------------------+

예: 스테이지 속성 설명하기

같은 테이블에 대한 현재 스테이지 속성을 설명합니다(여기서는 처음 5개 행만 표시됨).

DESCRIBE TABLE desc_example TYPE = STAGE;
Copy
+--------------------+--------------------------------+---------------+-----------------+------------------+
| parent_property    | property                       | property_type | property_value  | property_default |
|--------------------+--------------------------------+---------------+-----------------+------------------|
| STAGE_FILE_FORMAT  | TYPE                           | String        | CSV             | CSV              |
| STAGE_FILE_FORMAT  | RECORD_DELIMITER               | String        | \n              | \n               |
| STAGE_FILE_FORMAT  | FIELD_DELIMITER                | String        | ,               | ,                |
| STAGE_FILE_FORMAT  | FILE_EXTENSION                 | String        |                 |                  |
| STAGE_FILE_FORMAT  | SKIP_HEADER                    | Integer       | 0               | 0                |
...