SHOW COLUMNS¶
액세스 권한이 있는 테이블 또는 뷰의 열을 나열합니다. 이 명령을 사용해 지정된 테이블/뷰/스키마/데이터베이스(또는 세션의 현재 스키마/데이터베이스) 또는 전체 계정에 대한 열을 나열할 수 있습니다.
- 참고 항목:
-
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.
와 유사한 오류를 표시합니다.
키워드
VIEW
또는 뷰 이름을 지정하는 경우 뷰에 대한 규칙이 테이블에 대한 규칙과 매우 유사합니다.키워드
APPLICATION
또는APPLICATION PACKAGE
를 지정하는 경우 지정된 Snowflake Native App Framework 애플리케이션 또는 애플리케이션 패키지에 대한 레코드가 반환됩니다.기본값: 세션에 현재 사용 중인 데이터베이스가 있는지 여부에 따라 다릅니다.
데이터베이스:
DATABASE
가 기본값입니다(즉, 이 명령은 데이터베이스에서 볼 권한이 있는 오브젝트를 반환함).데이터베이스 없음:
ACCOUNT
가 기본값입니다(즉, 이 명령은 계정에서 볼 권한이 있는 오브젝트를 반환함).
사용법 노트¶
키워드
VIEW
를 사용하고 뷰 이름을 지정하는 경우 이 뷰는 구체화된 뷰이거나 구체화되지 않은 뷰일 수 있습니다.
이 명령을 실행하기 위해 실행 중인 웨어하우스가 꼭 필요하지는 않습니다.
이 명령은 현재 사용자의 현재 역할에 하나 이상의 액세스 권한이 부여된 오브젝트만 반환합니다.
MANAGE GRANTS 액세스 권한은 그 권한을 보유한 자가 계정에 있는 모든 오브젝트를 볼 수 있도록 암시적으로 허용합니다. 기본적으로, 계정 관리자(ACCOUNTADMIN 역할 이 있는 사용자)와 보안 관리자(SECURITYADMIN 역할이 있는 사용자)만 MANAGE GRANTS 권한을 가집니다.
이 명령의 출력을 사후 처리하려면 출력을 쿼리할 수 있는 테이블로 처리하는 RESULT_SCAN 함수를 사용하면 됩니다. 파이프 연산자 를 사용하여 이 명령의 출력을 쿼리할 수도 있습니다.
이 명령은 명령을 실행하는 데 사용된 역할에 대한 액세스 권한에 따라 지정된 오브젝트 유형에 대해 최대 1만 개의 레코드를 반환합니다. 필터를 적용하더라도 1만 개 레코드 제한을 초과하는 레코드는 반환되지 않습니다.
10,000개 이상의 레코드가 존재하는 결과를 보려면 Snowflake Information Schema 에서 해당 뷰(있는 경우)를 쿼리하십시오.
출력¶
명령 출력은 다음 열에 열 속성과 메타데이터를 제공합니다.
열 |
설명 |
---|---|
|
열이 속한 테이블의 이름입니다. |
|
테이블의 스키마입니다. |
|
열의 이름입니다. |
|
길이, 전체 자릿수, 소수 자릿수, null 허용 등의 열 데이터 타입과 적용 가능한 속성입니다. 문자 및 숫자 열은 정의된 데이터 타입이 아닌 일반 데이터 타입을 표시합니다(즉 , 모든 문자 형식에는 TEXT, 모든 고정 소수점 숫자 형식에는 FIXED, 모든 부동 소수점 숫자 형식에는 REAL). |
|
열이 NULL 값을 포함할 수 있는지 여부입니다. |
|
열에 대해 정의된 기본값(있는 경우)입니다. |
|
열에는 적용할 수 없습니다(COLUMN을 항상 값으로 표시함). |
|
|
|
열에 대해 설명입니다(있는 경우). |
|
테이블의 데이터베이스입니다. |
|
열에 대한 자동 증가 시작 및 증가 값입니다(있는 경우). 열에 NOORDER 속성이 있는 경우 값에는 |
|
주어진 테이블 열에 대해 최근에 트리거된 Schema Evolution에 대한 정보를 기록합니다. 이 열에는 다음 하위 필드가 포함됩니다.
|
예¶
create or replace table dt_test (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,
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 dt_test;
+------------+-------------+-------------+---------------------------------------------------------------------------------------+-------+----------------+--------+------------+---------+---------------+-------------------------------+
| table_name | schema_name | column_name | data_type | null? | default | kind | expression | comment | database_name | autoincrement |
|------------+-------------+-------------+---------------------------------------------------------------------------------------+-------+----------------+--------+------------+---------+---------------+-------------------------------|
| DT_TEST | PUBLIC | N1 | {"type":"FIXED","precision":38,"scale":0,"nullable":true} | true | 5 | COLUMN | | | TEST1 | |
| DT_TEST | PUBLIC | N2_INT | {"type":"FIXED","precision":38,"scale":0,"nullable":true} | true | DT_TEST.N1 + 5 | COLUMN | | | TEST1 | |
| DT_TEST | PUBLIC | N3_BIGINT | {"type":"FIXED","precision":38,"scale":0,"nullable":true} | true | | COLUMN | | | TEST1 | IDENTITY START 1 INCREMENT 1 |
| DT_TEST | PUBLIC | N4_DEC | {"type":"FIXED","precision":38,"scale":0,"nullable":true} | true | | COLUMN | | | TEST1 | IDENTITY START 1 INCREMENT 10 |
| DT_TEST | PUBLIC | F1 | {"type":"REAL","nullable":true} | true | | COLUMN | | | TEST1 | |
| DT_TEST | PUBLIC | F2_DOUBLE | {"type":"REAL","nullable":true} | true | | COLUMN | | | TEST1 | |
| DT_TEST | PUBLIC | F3_REAL | {"type":"REAL","nullable":true} | true | | COLUMN | | | TEST1 | |
| DT_TEST | PUBLIC | S1 | {"type":"TEXT","length":16777216,"byteLength":16777216,"nullable":true,"fixed":false} | true | | COLUMN | | | TEST1 | |
| DT_TEST | PUBLIC | S2_VAR | {"type":"TEXT","length":16777216,"byteLength":16777216,"nullable":true,"fixed":false} | true | | COLUMN | | | TEST1 | |
| DT_TEST | PUBLIC | S3_CHAR | {"type":"TEXT","length":1,"byteLength":4,"nullable":true,"fixed":false} | true | | COLUMN | | | TEST1 | |
| DT_TEST | PUBLIC | S4_TEXT | {"type":"TEXT","length":16777216,"byteLength":16777216,"nullable":true,"fixed":false} | true | | COLUMN | | | TEST1 | |
| DT_TEST | PUBLIC | B1 | {"type":"BINARY","length":8388608,"byteLength":8388608,"nullable":true,"fixed":true} | true | | COLUMN | | | TEST1 | |
| DT_TEST | PUBLIC | B2_VAR | {"type":"BINARY","length":8388608,"byteLength":8388608,"nullable":true,"fixed":false} | true | | COLUMN | | | TEST1 | |
| DT_TEST | PUBLIC | BOOL1 | {"type":"BOOLEAN","nullable":true} | true | | COLUMN | | | TEST1 | |
| DT_TEST | PUBLIC | D1 | {"type":"DATE","nullable":true} | true | | COLUMN | | | TEST1 | |
| DT_TEST | PUBLIC | T1 | {"type":"TIME","precision":0,"scale":9,"nullable":true} | true | | COLUMN | | | TEST1 | |
| DT_TEST | PUBLIC | TS1 | {"type":"TIMESTAMP_LTZ","precision":0,"scale":9,"nullable":true} | true | | COLUMN | | | TEST1 | |
| DT_TEST | PUBLIC | TS2_LTZ | {"type":"TIMESTAMP_LTZ","precision":0,"scale":9,"nullable":true} | true | | COLUMN | | | TEST1 | |
| DT_TEST | PUBLIC | TS3_NTZ | {"type":"TIMESTAMP_NTZ","precision":0,"scale":9,"nullable":true} | true | | COLUMN | | | TEST1 | |
| DT_TEST | PUBLIC | TS4_TZ | {"type":"TIMESTAMP_TZ","precision":0,"scale":9,"nullable":true} | true | | COLUMN | | | TEST1 | |
+------------+-------------+-------------+---------------------------------------------------------------------------------------+-------+----------------+--------+------------+---------+---------------+-------------------------------+