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를 사용하고 뷰 이름을 지정하는 경우 이 뷰는 구체화된 뷰이거나 구체화되지 않은 뷰일 수 있습니다.
이 명령은 명령을 실행하는 데 사용된 역할에 대한 액세스 권한에 따라 지정된 오브젝트 유형에 대해 최대 1만 개의 레코드를 반환합니다. 필터를 적용하더라도 1만 개 레코드 제한을 초과하는 레코드는 반환되지 않습니다.
10,000개 이상의 레코드가 존재하는 결과를 보려면 Snowflake Information Schema 에서 해당 뷰(있는 경우)를 쿼리하십시오.
이 명령을 실행하기 위해 실행 중인 웨어하우스가 꼭 필요하지는 않습니다.
이 명령은 현재 사용자의 현재 역할에 하나 이상의 액세스 권한이 부여된 오브젝트만 반환합니다.
MANAGE GRANTS 액세스 권한은 그 권한을 보유한 자가 계정에 있는 모든 오브젝트를 볼 수 있도록 암시적으로 허용합니다. 기본적으로, 계정 관리자(ACCOUNTADMIN 역할 이 있는 사용자)와 보안 관리자(SECURITYADMIN 역할이 있는 사용자)만 MANAGE GRANTS 권한을 가집니다.
이 명령의 출력을 후처리하기 위해 파이프 연산자 (
->>) 또는 RESULT_SCAN 함수를 사용할 수 있습니다. 두 구문 모두 출력을 쿼리할 수 있는 결과 세트로 간주합니다.For example, you can use the pipe operator or RESULT_SCAN function to select specific columns from the SHOW command output or filter the rows.
When you refer to the output columns, use double-quoted identifiers for the column names. For example, to select the output column
type, specifySELECT "type".You must use double-quoted identifiers because the output column names for SHOW commands are in lowercase. The double quotes ensure that the column names in the SELECT list or WHERE clause match the column names in the SHOW command output that was scanned.
참고
The column names in the output table for the SHOW COLUMNS command are lowercase (that is, table_name, schema_name, column_name, and so on). However, the values in the column_name column reflect the column name that is stored. For example, if a column name is added without being enclosed in double quotes (ALTER TABLE ... ADD COLUMN MYCOLUMN, the column name is stored in uppercase and appears as MYCOLUMN in the column_name column.
출력¶
명령 출력은 다음 열에 열 속성과 메타데이터를 제공합니다.
열 | 설명 |
|---|---|
| 열이 속한 테이블의 이름입니다. |
| 테이블의 스키마입니다. |
| 열의 이름입니다. |
| 길이, 전체 자릿수, 소수 자릿수, null 허용 등의 열 데이터 타입과 적용 가능한 속성입니다. 문자 및 숫자 열은 정의된 데이터 타입이 아닌 일반 데이터 타입을 표시합니다(즉 , 모든 문자 형식에는 TEXT, 모든 고정 소수점 숫자 형식에는 FIXED, 모든 부동 소수점 숫자 형식에는 REAL). |
| 열이 NULL 값을 포함할 수 있는지 여부입니다. |
| 열에 대해 정의된 기본값(있는 경우)입니다. |
| 열에는 적용할 수 없습니다(COLUMN을 항상 값으로 표시함). |
| |
| 열에 대해 설명입니다(있는 경우). |
| 테이블의 데이터베이스입니다. |
| 열에 대한 자동 증가 시작 및 증가 값입니다(있는 경우). 열에 NOORDER 속성이 있는 경우 값에는 |
| 주어진 테이블 열에 대해 최근에 트리거된 Schema Evolution에 대한 정보를 기록합니다. 이 열에는 다음 하위 필드가 포함됩니다.
|
예¶
The following example creates a table and then runs the SHOW COLUMNS command to list the columns in the table:
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 | +-------------------+----------------+-------------------+---------------------------------------------------------------------------------------+-------+--------------------------+--------+------------+---------+---------------+---------------------------------------+-------------------------+