SHOW COLUMNS

액세스 권한이 있는 경우 테이블 또는 뷰의 열 및 :doc:`의미 체계 뷰</user-guide/views-semantic/overview>`의 차원, 팩트, 메트릭을 나열합니다. 이 명령을 사용하여 다음 오브젝트에 대한 열, 차원, 팩트 및 메트릭을 나열할 수 있습니다.

  • 지정된 테이블 또는 뷰.

  • 지정된 스키마 또는 현재 사용 중인 스키마의 모든 테이블 및 뷰.

  • 지정된 데이터베이스 또는 현재 사용 중인 데이터베이스의 모든 테이블 및 뷰.

  • 계정의 모든 테이블 및 뷰.

참고 항목:

DESCRIBE TABLE

COLUMNS 뷰 (Information Schema)

구문

SHOW COLUMNS [ LIKE '<pattern>' ]
             [ IN { ACCOUNT | DATABASE [ <database_name> ] | SCHEMA [ <schema_name> ] | TABLE | [ TABLE ] <table_name> | VIEW | [ VIEW ] <view_name> } | APPLICATION <application_name> | APPLICATION PACKAGE <application_package_name> ]
Copy

매개 변수

LIKE '<패턴>'

오브젝트 이름으로 명령 출력을 필터링합니다. 이 필터는 SQL 와일드카드 문자(%_) 지원과 함께 대/소문자를 구분하지 않는 패턴 일치를 사용합니다.

예를 들어, 다음 패턴은 같은 결과를 반환합니다.

... LIKE '%testing%' ...
... LIKE '%TESTING%' ...
IN { ACCOUNT | DATABASE [ <데이터베이스_이름> ] | SCHEMA [ <스키마_이름> ] | TABLE | [ TABLE ] <테이블_이름> | VIEW | [ VIEW ] <뷰_이름> | APPLICATION <애플리케이션_이름>  | APPLICATION PACKAGE <애플리케이션_패키지_이름> }

명령의 범위를 지정하여 이 명령이 현재/지정된 데이터베이스, 스키마, 테이블 또는 뷰의 레코드만 나열할지, 아니면 전체 계정의 레코드를 나열할지 여부를 결정합니다.

키워드 ACCOUNT 를 지정하는 경우 이 명령은 현재 계정의 모든 데이터베이스에 있는 모든 스키마의 레코드를 검색합니다.

키워드 DATABASE 를 지정하면 다음 사항이 적용됩니다.

  • db_name 을 지정하는 경우 이 명령은 지정된 데이터베이스의 모든 스키마의 레코드를 검색합니다.

  • db_name 을 지정하지 않으면 다음이 적용됩니다.

    • 현재 데이터베이스가 있는 경우 이 명령은 현재 데이터베이스의 모든 스키마의 레코드를 검색합니다.

    • 현재 데이터베이스가 없는 경우 이 명령은 계정의 모든 데이터베이스 및 스키마의 레코드를 검색합니다.

키워드 SCHEMA 를 지정하면 다음 사항이 적용됩니다.

  • 정규화된 스키마 이름(예: my_database.my_schema)을 지정하는 경우 이 명령은 지정된 데이터베이스 및 스키마의 레코드를 검색합니다.

  • 정규화되지 않은 schema_name 을 지정하면 다음 사항이 적용됩니다.

    • 현재 데이터베이스가 있는 경우 이 명령은 현재 데이터베이스의 지정된 스키마의 레코드를 검색합니다.

    • 현재 데이터베이스가 없는 경우 이 명령은 SQL compilation error: Object does not exist, or operation cannot be performed 오류 메시지를 표시합니다.

  • schema_name 을 지정하지 않으면 다음이 적용됩니다.

    • 현재 데이터베이스가 있으면 다음 사항이 적용됩니다.

      • 현재 스키마가 있는 경우 이 명령은 현재 데이터베이스의 현재 스키마의 레코드를 검색합니다.

      • 현재 스키마가 없는 경우 이 명령은 현재 데이터베이스의 모든 스키마의 레코드를 검색합니다.

    • 현재 데이터베이스가 없는 경우 이 명령은 계정의 모든 데이터베이스 및 모든 스키마의 레코드를 검색합니다.

table_name 없이 키워드 TABLE 을 지정하면 다음 사항이 적용됩니다.

  • 현재 데이터베이스가 있으면 다음 사항이 적용됩니다.

    • 현재 스키마가 있는 경우 이 명령은 현재 데이터베이스의 현재 스키마의 레코드를 검색합니다.

    • 현재 스키마가 없는 경우 이 명령은 현재 데이터베이스의 모든 스키마의 레코드를 검색합니다.

  • 현재 데이터베이스가 없는 경우 이 명령은 계정의 모든 데이터베이스 및 모든 스키마의 레코드를 검색합니다.

(키워드 TABLE 이 있거나 없는 상태에서) <테이블_이름> 을 지정하는 경우 다음 사항이 적용됩니다.

  • 정규화된 <테이블_이름> (예: my_database_name.my_schema_name.my_table_name)을 지정하는 경우 이 명령은 지정된 테이블의 모든 레코드를 검색합니다.

  • 스키마 정규화된 <테이블_이름> (예: my_schema_name.my_table_name)을 지정하는 경우 다음 사항이 적용됩니다.

    • 현재 데이터베이스가 있는 경우 이 명령은 지정된 테이블의 모든 레코드를 검색합니다.

    • 현재 데이터베이스가 없는 경우 이 명령은 Cannot perform SHOW <오브젝트_유형>. This session does not have a current database... 과 유사한 오류를 표시합니다.

  • 정규화되지 않은 <테이블_이름> 을 지정하면 다음 사항이 적용됩니다.

    • 현재 데이터베이스와 현재 스키마가 있는 경우 이 명령은 현재 데이터베이스의 현재 스키마에서 지정된 테이블의 레코드를 검색합니다.

    • 현재 데이터베이스가 없거나 현재 스키마가 없는 경우 이 명령은 SQL compilation error: <오브젝트> does not exist or not authorized. 와 유사한 오류를 표시합니다.

키워드 VIEW 또는 뷰 이름을 지정하는 경우 뷰에 대한 규칙이 테이블에 대한 규칙과 매우 유사합니다.

키워드 APPLICATION 또는 ``APPLICATION PACKAGE``를 지정하는 경우 지정된 Snowflake Native App Framework 애플리케이션 또는 애플리케이션 패키지에 대한 레코드가 반환됩니다.

기본값: 세션에 현재 사용 중인 데이터베이스가 있는지 여부에 따라 다릅니다.

  • 데이터베이스: DATABASE 가 기본값입니다(즉, 이 명령은 데이터베이스에서 볼 권한이 있는 오브젝트를 반환함).

  • 데이터베이스 없음: ACCOUNT 가 기본값입니다(즉, 이 명령은 계정에서 볼 권한이 있는 오브젝트를 반환함).

사용법 노트

  • VIEW 키워드를 사용하고 표준 뷰, 구체화된 뷰, 의미 체계 뷰의 뷰 이름을 지정할 수 있습니다.

  • 이 명령은 명령을 실행하는 데 사용된 역할에 대한 액세스 권한에 따라 지정된 오브젝트 유형에 대해 최대 1만 개의 레코드를 반환합니다. 필터를 적용하더라도 1만 개 레코드 제한을 초과하는 레코드는 반환되지 않습니다.

    10,000개 이상의 레코드가 존재하는 결과를 보려면 Snowflake Information Schema 에서 해당 뷰(있는 경우)를 쿼리하십시오.

  • 이 명령을 실행하기 위해 실행 중인 웨어하우스가 꼭 필요하지는 않습니다.

  • 이 명령은 현재 사용자의 현재 역할에 하나 이상의 액세스 권한이 부여된 오브젝트만 반환합니다.

  • MANAGE GRANTS 액세스 권한은 그 권한을 보유한 자가 계정에 있는 모든 오브젝트를 볼 수 있도록 암시적으로 허용합니다. 기본적으로, 계정 관리자(ACCOUNTADMIN 역할 이 있는 사용자)와 보안 관리자(SECURITYADMIN 역할이 있는 사용자)만 MANAGE GRANTS 권한을 가집니다.

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

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

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

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

참고

SHOW COLUMNS 명령에 대한 출력 테이블의 열 이름은 소문자입니다(즉, table_name, schema_name, column_name`등). 그러나 :code:`column_name 열의 값은 저장된 열 이름을 반영합니다. 예를 들어, ALTER TABLE ... ADD COLUMN MYCOLUMN 문을 사용하여 큰따옴표로 묶지 않고 열 이름을 추가하는 경우 열 이름은 대문자로 저장되고 column_name 열에 ``MYCOLUMN``으로 표시됩니다.

출력

명령 출력은 다음 열에 열 속성과 메타데이터를 제공합니다.

설명

table_name

열, 차원, 팩트 또는 메트릭이 속한 테이블 또는 뷰의 이름입니다.

schema_name

테이블의 스키마입니다.

column_name

열, 차원, 팩트 또는 메트릭의 이름입니다.

data_type

열, 차원, 팩트 또는 메트릭의 데이터 타입과 해당 속성을 포함하는 JSON 오브젝트입니다.

type 키-값 페어는 열, 차원, 팩트 또는 메트릭의 데이터 타입을 지정합니다.

문자열숫자 데이터 타입의 경우 ``type``은 다음 값 중 하나를 지정합니다.

  • 모든 문자열 유형은 TEXT.

  • 모든 고정 소수점 숫자 유형은 FIXED.

  • 모든 부동 소수점 숫자 유형은 REAL.

다른 키-값 페어는 특정 데이터 타입에 적용할 수 있는 속성을 설명합니다. 예:

  • type``이 ``TEXT 또는 BINARY``인 경우, 추가 키-값 페어는 ``length, byteLength, nullable``fixed``를 포함할 수 있습니다.

  • type``이 ``FIXED, TIME, TIMESTAMP_NTZ, TIMESTAMP_LTZ 또는 TIMESTAMP_TZ``인 경우, 추가 키-값 페어는 ``precision, scale``nullable``을 포함할 수 있습니다.

  • type``이 ``REAL, DATE 또는 ``BOOLEAN``인 경우, 추가 키-값 페어는 ``nullable``을 포함할 수 있습니다.

null?

열이 NULL 값을 포함할 수 있는지 여부입니다.

default

열에 대해 정의된 기본값(있는 경우)입니다.

kind

다음 값 중 하나입니다.

  • 테이블, 뷰 및 구체화된 뷰의 열은 COLUMN.

  • 의미 체계 뷰</user-guide/views-semantic/overview>`의 차원은 ``DIMENSION`.

  • 의미 체계 뷰의 팩트는 FACT.

  • 의미 체계 뷰의 메트릭은 METRIC.

expression

comment

열, 차원, 팩트 또는 메트릭에 대한 설명(있는 경우).

database_name

테이블의 데이터베이스입니다.

autoincrement

열에 대한 자동 증가 시작 및 증가 값입니다(있는 경우). 열에 NOORDER 속성이 있는 경우 값에는 NOORDER (예: IDENTITY START 1 INCREMENT 1 NOORDER)가 포함됩니다. 그렇지 않으면 값에 ORDER 가 포함됩니다.

schema_evolution_record

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

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

  • EvolutionMode: 트리거링 수집 메커니즘(COPY, SNOWPIPE, SNOWPIPE_STREAMING)입니다.

  • FileName: 진화를 트리거한 파일 이름입니다(SNOWPIPE_STREAMING의 경우 NULL).

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

  • QueryId 또는 PipeId: 트리거링 쿼리 또는 파이프의 고유 식별자입니다(COPY의 경우 QUERY ID, SNOWPIPE의 경우 PIPE ID. SNOWPIPE_STREAMING의 경우 NULL).

  • 파이프 이름: 스키마 진화를 트리거한 정규화된 파이프 이름입니다(SNOWPIPE_STREAMING만 해당).

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

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

다음 예제에서는 테이블을 생성한 다음 SHOW COLUMNS 명령을 실행하여 테이블의 열을 나열합니다.

CREATE OR REPLACE TABLE test_show_columns (
  n1 NUMBER DEFAULT 5,
  n2_int INTEGER DEFAULT n1+5,
  n3_bigint BIGINT AUTOINCREMENT,
  n4_dec DECIMAL IDENTITY (1,10),
  f1 FLOAT,
  f2_double DOUBLE,
  f3_real REAL,
  s1 STRING,
  s2_var VARCHAR,
  s3_char CHAR,
  s4_text TEXT,
  "s5_case_sensitive" VARCHAR,
  b1 BINARY,
  b2_var VARBINARY,
  bool1 BOOLEAN,
  d1 DATE,
  t1 TIME,
  ts1 TIMESTAMP,
  ts2_ltz TIMESTAMP_LTZ,
  ts3_ntz TIMESTAMP_NTZ,
  ts4_tz TIMESTAMP_TZ);

SHOW COLUMNS IN TABLE test_show_columns;
Copy
+-------------------+----------------+-------------------+---------------------------------------------------------------------------------------+-------+--------------------------+--------+------------+---------+---------------+---------------------------------------+-------------------------+
| table_name        | schema_name    | column_name       | data_type                                                                             | null? | default                  | kind   | expression | comment | database_name | autoincrement                         | schema_evolution_record |
|-------------------+----------------+-------------------+---------------------------------------------------------------------------------------+-------+--------------------------+--------+------------+---------+---------------+---------------------------------------+-------------------------|
| TEST_SHOW_COLUMNS | MY_SCHEMA      | N1                | {"type":"FIXED","precision":38,"scale":0,"nullable":true}                             | true  | 5                        | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | N2_INT            | {"type":"FIXED","precision":38,"scale":0,"nullable":true}                             | true  | TEST_SHOW_COLUMNS.N1 + 5 | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | N3_BIGINT         | {"type":"FIXED","precision":38,"scale":0,"nullable":true}                             | true  |                          | COLUMN |            |         | MY_DB         | IDENTITY START 1 INCREMENT 1 NOORDER  | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | N4_DEC            | {"type":"FIXED","precision":38,"scale":0,"nullable":true}                             | true  |                          | COLUMN |            |         | MY_DB         | IDENTITY START 1 INCREMENT 10 NOORDER | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | F1                | {"type":"REAL","nullable":true}                                                       | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | F2_DOUBLE         | {"type":"REAL","nullable":true}                                                       | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | F3_REAL           | {"type":"REAL","nullable":true}                                                       | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | S1                | {"type":"TEXT","length":16777216,"byteLength":16777216,"nullable":true,"fixed":false} | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | S2_VAR            | {"type":"TEXT","length":16777216,"byteLength":16777216,"nullable":true,"fixed":false} | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | S3_CHAR           | {"type":"TEXT","length":1,"byteLength":4,"nullable":true,"fixed":false}               | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | S4_TEXT           | {"type":"TEXT","length":16777216,"byteLength":16777216,"nullable":true,"fixed":false} | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | s5_case_sensitive | {"type":"TEXT","length":16777216,"byteLength":16777216,"nullable":true,"fixed":false} | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | B1                | {"type":"BINARY","length":8388608,"byteLength":8388608,"nullable":true,"fixed":true}  | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | B2_VAR            | {"type":"BINARY","length":8388608,"byteLength":8388608,"nullable":true,"fixed":false} | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | BOOL1             | {"type":"BOOLEAN","nullable":true}                                                    | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | D1                | {"type":"DATE","nullable":true}                                                       | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | T1                | {"type":"TIME","precision":0,"scale":9,"nullable":true}                               | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | TS1               | {"type":"TIMESTAMP_NTZ","precision":0,"scale":9,"nullable":true}                      | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | TS2_LTZ           | {"type":"TIMESTAMP_LTZ","precision":0,"scale":9,"nullable":true}                      | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | TS3_NTZ           | {"type":"TIMESTAMP_NTZ","precision":0,"scale":9,"nullable":true}                      | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | TS4_TZ            | {"type":"TIMESTAMP_TZ","precision":0,"scale":9,"nullable":true}                       | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
+-------------------+----------------+-------------------+---------------------------------------------------------------------------------------+-------+--------------------------+--------+------------+---------+---------------+---------------------------------------+-------------------------+