SHOW COLUMNS¶
Lists the columns in the tables or views and the dimensions, facts, and metrics in the semantic views for which you have access privileges. This command can be used to list the columns, dimensions, facts, and metrics for the following objects:
The specified table or view.
All tables and views in the specified schema or in the schema that is currently in use.
All tables and views in the specified database or in the database that is currently in use.
All tables and views in your account.
- Consulte também:
-
Exibição COLUMNS (Information Schema)
Sintaxe¶
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> ]
Parâmetros¶
LIKE '<padrão>'Filtra a saída do comando pelo nome do objeto. O filtro utiliza correspondência de padrão que não diferencia maiúsculas e minúsculas, com suporte para caracteres curinga SQL (
%e_).Por exemplo, os seguintes padrões retornam os mesmos resultados:
... LIKE '%testing%' ...... LIKE '%TESTING%' ...IN { ACCOUNT | DATABASE [ <database_name> ] | SCHEMA [ <schema_name> ] | TABLE | [ TABLE ] <table_name> | VIEW | [ VIEW ] <view_name> | APPLICATION <application_name> | APPLICATION PACKAGE <application_package_name> }Especifica o escopo do comando, que determina se o comando lista registros apenas para o banco de dados, esquema, tabela ou exibição atual/especificado ou em toda a sua conta:
Se você especificar a palavra-chave
ACCOUNT, então o comando recuperará os registros de todos os esquemas em todos os bancos de dados da conta atual.Se você especificar a palavra-chave
DATABASE, então:Se você especificar um
db_name, então o comando recupera registros para todos os esquemas do banco de dados especificado.Se você não especificar um
db_name, então:Se houver um banco de dados atual, então o comando recuperará os registros de todos os esquemas do banco de dados atual.
Se não houver um banco de dados atual, então o comando recuperará registros para todos os bancos de dados e esquemas da conta.
Se você especificar a palavra-chave
SCHEMA, então:Se você especificar um nome de esquema qualificado (por exemplo,
my_database.my_schema), então o comando recupera os registros para o banco de dados e esquema especificados.Se você especificar um
schema_namenão qualificado, então:Se houver um banco de dados atual, então o comando recupera os registros para o esquema especificado no banco de dados atual.
Se não houver um banco de dados atual, então o comando exibe o erro
SQL compilation error: Object does not exist, or operation cannot be performed.
Se você não especificar um
schema_name, então:Se houver um banco de dados atual, então:
Se houver um esquema atual, então o comando recupera registros para o esquema atual no banco de dados atual.
Se não houver um esquema atual, então o comando recupera os registros de todos os esquemas no banco de dados atual.
Se não houver um banco de dados atual, então o comando recupera os registros de todos os bancos de dados e todos os esquemas da conta.
Se você especificar a palavra-chave
TABLEsem umtable_name, então:Se houver um banco de dados atual, então:
Se houver um esquema atual, então o comando recupera registros para o esquema atual no banco de dados atual.
Se não houver um esquema atual, então o comando recupera os registros de todos os esquemas no banco de dados atual.
Se não houver um banco de dados atual, então o comando recupera os registros de todos os bancos de dados e todos os esquemas da conta.
Se você especificar um
<table_name>(com ou sem a palavra-chaveTABLE), então:Se você especificar um
<table_name>totalmente qualificado (por exemplo,my_database_name.my_schema_name.my_table_name), então o comando recuperará todos os registros para a tabela especificada.Se você especificar um esquema qualificado
<table_name>(por exemplo,my_schema_name.my_table_name), então:Se houver um banco de dados atual, o comando recupera todos os registros da tabela especificada.
Se não existir um banco de dados atual, então o comando exibe um erro semelhante a
Cannot perform SHOW <tipo_objeto>. This session does not have a current database....
Se você especificar um
<table_name não qualificado>, então:Se houver um banco de dados atual e um esquema atual, então o comando recupera os registros para a tabela especificada no esquema atual do banco de dados atual.
Se não existir um banco de dados atual ou se não existir um esquema atual, então o comando exibirá um erro semelhante a:
SQL compilation error: <objeto> 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.Padrão: depende se a sessão tem ou não um banco de dados em uso no momento:
Banco de dados:
DATABASEé o padrão (ou seja, o comando retorna os objetos nos quais você tem privilégios para visualizar no banco de dados).Sem banco de dados:
ACCOUNTé o padrão (ou seja, o comando retorna os objetos que você tem privilégios de visualização em sua conta).
Notas de uso¶
You can use the
VIEWkeyword and specify a view name for standard views, materialized views, and semantic views.
O comando retorna um máximo de dez mil registros para o tipo de objeto especificado, conforme ditado pelos privilégios de acesso da função usada para executar o comando. Todos os registros acima do limite de dez mil registros não são retornados, mesmo com um filtro aplicado.
Para visualizar os resultados para os quais existem mais de dez mil registros, consulte a exibição correspondente (se houver) em Snowflake Information Schema.
O comando não precisa de um warehouse em funcionamento para ser executado.
O comando retorna apenas objetos para os quais a função atual do usuário atual recebeu pelo menos um privilégio de acesso.
O privilégio de acesso MANAGE GRANTS permite implicitamente que seu titular consulte todos os objetos da conta. Por padrão, somente o administrador de conta (usuários com a função ACCOUNTADMIN) e o administrador de segurança (usuários com a função SECURITYADMIN) têm o privilégio MANAGE GRANTS.
Para pós-processar a saída deste comando, você pode usar o operador de canal (
->>) ou a função RESULT_SCAN. Ambos os constructos tratam a saída como um conjunto de resultados que você pode consultar.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.
Nota
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 using the ALTER TABLE ... ADD COLUMN MYCOLUMN
statement, the column name is stored in uppercase and appears as MYCOLUMN in the column_name
column.
Saída¶
A saída do comando fornece propriedades de coluna e metadados nas seguintes colunas:
Coluna |
Descrição |
|---|---|
|
Name of the table or view that the column, dimension, fact, or metric belongs to. |
|
Esquema para a tabela. |
|
Name of the column, dimension, fact, or metric. |
|
JSON object containing the data type and applicable properties of the column, dimension, fact, or metric. The For string and numeric data types,
The other key-value pairs describe the properties that are applicable to the particular data type. For example:
|
|
Se a coluna pode conter valores NULL. |
|
Valor padrão, se houver, definido para a coluna. |
|
One of the following values:
|
|
|
|
Comment, if any, for the column, dimension, fact, or metric. |
|
Banco de dados para a tabela. |
|
Valores de início e incremento automáticos, se houver, para a coluna. Se a coluna tiver a propriedade NOORDER, o valor incluirá |
|
Registra informações sobre a última evolução do esquema acionada para uma determinada coluna da tabela. Esta coluna contém os seguintes subcampos:
|
Exemplos¶
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 |
+-------------------+----------------+-------------------+---------------------------------------------------------------------------------------+-------+--------------------------+--------+------------+---------+---------------+---------------------------------------+-------------------------+