SHOW COLUMNS¶
액세스 권한이 있는 경우 테이블 또는 뷰의 열 및 :doc:`의미 체계 뷰</user-guide/views-semantic/overview>`의 차원, 팩트, 메트릭을 나열합니다. 이 명령을 사용하여 다음 오브젝트에 대한 열, 차원, 팩트 및 메트릭을 나열할 수 있습니다.
지정된 테이블 또는 뷰.
지정된 스키마 또는 현재 사용 중인 스키마의 모든 테이블 및 뷰.
지정된 데이터베이스 또는 현재 사용 중인 데이터베이스의 모든 테이블 및 뷰.
계정의 모든 테이블 및 뷰.
- 참고 항목:
-
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> ]
매개 변수¶
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.와 유사한 오류를 표시합니다.
If you specify the
VIEWkeyword or a view name, the rules for views parallel the rules for tables.If you specify the
APPLICATIONorAPPLICATION PACKAGEkeywords, records for the specified Snowflake Native App Framework application or application package are returned.기본값: 세션에 현재 사용 중인 데이터베이스가 있는지 여부에 따라 다릅니다.
데이터베이스:
DATABASE가 기본값입니다(즉, 이 명령은 데이터베이스에서 볼 권한이 있는 오브젝트를 반환함).데이터베이스 없음:
ACCOUNT가 기본값입니다(즉, 이 명령은 계정에서 볼 권한이 있는 오브젝트를 반환함).
사용법 노트¶
You can use the
VIEWkeyword and specify a view name for standard views, materialized views, and semantic views.
이 명령은 명령을 실행하는 데 사용된 역할에 대한 액세스 권한에 따라 지정된 오브젝트 유형에 대해 최대 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``으로 표시됩니다.
출력¶
명령 출력은 다음 열에 열 속성과 메타데이터를 제공합니다.
열 |
설명 |
|---|---|
|
Name of the table or view that the column, dimension, fact, or metric belongs to. |
|
테이블의 스키마입니다. |
|
열, 차원, 팩트 또는 메트릭의 이름입니다. |
|
열, 차원, 팩트 또는 메트릭의 데이터 타입과 해당 속성을 포함하는 JSON 오브젝트입니다.
문자열 및 숫자 데이터 타입의 경우 ``type``은 다음 값 중 하나를 지정합니다.
다른 키-값 페어는 특정 데이터 타입에 적용할 수 있는 속성을 설명합니다. 예:
|
|
열이 NULL 값을 포함할 수 있는지 여부입니다. |
|
열에 대해 정의된 기본값(있는 경우)입니다. |
|
다음 값 중 하나입니다.
|
|
|
|
Comment, if any, for the column, dimension, fact, or metric. |
|
테이블의 데이터베이스입니다. |
|
열에 대한 자동 증가 시작 및 증가 값입니다(있는 경우). 열에 NOORDER 속성이 있는 경우 값에는 |
|
주어진 테이블 열에 대해 최근에 트리거된 Schema Evolution에 대한 정보를 기록합니다. 이 열에는 다음 하위 필드가 포함됩니다.
|
예¶
다음 예제에서는 테이블을 생성한 다음 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;
+-------------------+----------------+-------------------+---------------------------------------------------------------------------------------+-------+--------------------------+--------+------------+---------+---------------+---------------------------------------+-------------------------+
| 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 |
+-------------------+----------------+-------------------+---------------------------------------------------------------------------------------+-------+--------------------------+--------+------------+---------+---------------+---------------------------------------+-------------------------+