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> } ]
参数¶
LIKE '<pattern>'
按对象名称筛选命令输出。筛选器使用 不区分大小写 的模式匹配,并支持 SQL 通配符(
%
和_
)。例如,以下模式返回相同的结果:
... LIKE '%testing%' ...
... LIKE '%TESTING%' ...
IN { ACCOUNT | DATABASE [ <database_name> ] | SCHEMA [ <schema_name> ] | TABLE | [ TABLE ] <table_name> | VIEW | [ VIEW ] <view_name> }
指定命令的作用域,作用域决定命令是仅列出当前/指定数据库、架构、表或视图的记录,还是列出整个账户中的记录:
如果您指定关键字
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_name>
(带或不带TABLE
关键字),则:如果指定了完全限定的
<table_name>
(例如my_database_name.my_schema_name.my_table_name
),则该命令将检索指定表的所有记录。如果指定了架构限定的
<table_name>
(例如my_schema_name.my_table_name
),则:如果当前数据库存在,该命令将检索指定表的所有记录。
如果当前数据库不存在,该命令将显示如下所示的错误: :code:` Cannot perform SHOW <object_type>.This session does not have a current database...`.
如果您指定了未限定的
<table_name>
,那么:如果有当前数据库和当前架构,该命令将检索当前数据库的当前架构中指定表的记录。
如果没有当前数据库或没有当前架构,该命令将显示类似于以下这样的错误:
SQL compilation error: <object> does not exist or not authorized.
。
如果指定关键字
VIEW
或视图名称,则视图的规则与表的规则同时有效。默认:取决于会话当前是否正在使用数据库:
数据库:
DATABASE
是默认值(即该命令返回您有权在数据库中查看的对象)。无数据库:
ACCOUNT
是默认值(即该命令返回您有权在账户中查看的对象)。
使用说明¶
以前缀
is_
开头的列返回Y
(yes) 或N
(no)。该命令不需要正在运行的仓库即可执行。
该命令 最多 返回指定对象类型的 1 万条记录,由用于执行命令的角色的访问权限决定;即使应用了筛选器,也不会返回任何超过 1 万条限制的记录。
要查看存在超过 1 万条记录的结果,请在 Snowflake Information Schema 中查询相应的视图(如果存在)。
若要对此命令的输出进行后处理,可以使用 RESULT_SCAN 函数,该函数会将输出视为可查询的表。
如果使用关键字
VIEW
并指定视图名称,则视图可以是物化视图,也可以是非物化视图。
输出¶
命令输出在以下列中提供列属性和元数据:
列 |
描述 |
---|---|
|
列所属的表的名称。 |
|
表的架构。 |
|
列的名称。 |
|
列数据类型和适用属性,如长度、精度、小数位数、可为 null 等;请注意,字符列和数值列显示其泛型数据类型,而不是为其定义的数据类型(即 TEXT 对应所有字符类型、FIXED 对应所有定点数值类型和 REAL 对应所有浮点数值类型)。 |
|
列是否可以包含 NULL 值。 |
|
为列定义的默认值(如果有)。 |
|
不适用于列(始终显示 COLUMN 作为值)。 |
|
|
|
列的注释(如果有)。 |
|
表的数据库。 |
|
列的自动递增起始值和增量值(如果有)。如果列具有 NOORDER 属性,则值包括 |
|
记录特定表列最新触发的架构演进信息。此列包含以下子字段:
|
示例¶
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 | |
+------------+-------------+-------------+---------------------------------------------------------------------------------------+-------+----------------+--------+------------+---------+---------------+-------------------------------+