SHOW COLUMNS¶
Répertorie les colonnes des tables ou des vues et les dimensions, les faits et les métriques des vues sémantiques pour lesquelles vous disposez de privilèges d’accès. Cette commande peut être utilisée pour répertorier les colonnes, les dimensions, les faits et les métriques des objets suivants :
La table ou la vue spécifiée.
Toutes les tables et vues du schéma spécifié ou du schéma actuellement utilisé.
Toutes les tables et vues de la base de données spécifiée ou de la base de données actuellement utilisée.
Toutes les tables et vues de votre compte.
- Voir aussi :
-
Vue COLUMNS (Schéma d’information)
Syntaxe¶
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> ]
Paramètres¶
LIKE '<motif>'Filtre la sortie de commande par nom d’objet. Le filtre utilise une concordance de motif insensible à la casse avec prise en charge des caractères génériques SQL (
%et_).Par exemple, les motifs suivants donnent les mêmes résultats :
... 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> }Spécifie la portée de la commande, qui détermine si la commande liste les enregistrements uniquement pour la base de données, le schéma, la table ou la vue actuels/spécifiés, ou pour l’ensemble de votre compte :
Si vous spécifiez le mot clé
ACCOUNT, la commande récupère les enregistrements de tous les schémas de toutes les bases de données du compte courant.Si vous spécifiez le mot clé
DATABASE, alors :Si vous spécifiez un
db_name, la commande récupère les enregistrements de tous les schémas de la base de données spécifiée.Si vous ne spécifiez pas de
db_name, alors :S’il existe une base de données actuelle, la commande récupère les enregistrements de tous les schémas de la base de données actuelle.
S’il n’y a pas de base de données actuelle, la commande récupère les enregistrements de toutes les bases de données et de tous les schémas du compte.
Si vous spécifiez le mot clé
SCHEMA, alors :Si vous spécifiez un nom de schéma qualifié (par exemple,
my_database.my_schema), la commande récupère les enregistrements de la base de données et du schéma spécifiés.Si vous spécifiez un
schema_namenon qualifié, alors :S’il existe une base de données actuelle, la commande récupère les enregistrements du schéma spécifié dans la base de données actuelle.
S’il n’y a pas de base de données actuelle, la commande affiche l’erreur
SQL compilation error: Object does not exist, or operation cannot be performed.
Si vous ne spécifiez pas de
schema_name, alors :S’il existe une base de données actuelle, alors :
S’il existe un schéma actuel, la commande récupère les enregistrements pour le schéma actuel dans la base de données actuelle.
S’il n’y a pas de schéma actuel, la commande récupère les enregistrements de tous les schémas de la base de données actuelle.
S’il n’y a pas de base de données actuelle, la commande récupère les enregistrements de toutes les bases de données et de tous les schémas du compte.
Si vous spécifiez le mot clé
TABLEsanstable_name, alors :S’il existe une base de données actuelle, alors :
S’il existe un schéma actuel, la commande récupère les enregistrements pour le schéma actuel dans la base de données actuelle.
S’il n’y a pas de schéma actuel, la commande récupère les enregistrements de tous les schémas de la base de données actuelle.
S’il n’y a pas de base de données actuelle, la commande récupère les enregistrements de toutes les bases de données et de tous les schémas du compte.
Si vous spécifiez un
<table_name>(avec ou sans le mot cléTABLE), alors :Si vous spécifiez un
<table_name>entièrement qualifié (par exemple,my_database_name.my_schema_name.my_table_name), la commande récupère tous les enregistrements de la table spécifiée.Si vous spécifiez un
<table_name>qualifié de schéma (par exemple,my_schema_name.my_table_name), alors :Si une base de données actuelle existe, la commande récupère tous les enregistrements de la table spécifiée.
Si aucune base de données actuelle n’existe, la commande affiche une erreur similaire à
Cannot perform SHOW <object_type>. This session does not have a current database....
Si vous spécifiez un
<table_name>non qualifié, alors :Si une base de données actuelle et un schéma actuel existent, la commande récupère les enregistrements de la table spécifiée dans le schéma actuel de la base de données actuelle.
Si aucune base de données actuelle n’existe ou si aucun schéma actuel n’existe, la commande affiche une erreur similaire à :
SQL compilation error: <objet> 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.Par défaut : dépend si la session dispose actuellement d’une base de données en cours d’utilisation :
Base de données :
DATABASEest la valeur par défaut (c’est-à-dire que la commande renvoie les objets que vous pouvez visualiser dans la base de données).Aucune base de données :
ACCOUNTest la valeur par défaut (c’est-à-dire que la commande renvoie les objets que vous pouvez visualiser dans votre compte).
Notes sur l’utilisation¶
You can use the
VIEWkeyword and specify a view name for standard views, materialized views, and semantic views.
La commande renvoie un maximum de dix mille enregistrements pour le type d’objet spécifié, conformément aux privilèges d’accès du rôle utilisé pour exécuter la commande. Aucun enregistrement au-delà de la limite de dix mille enregistrements n’est renvoyé, même si un filtre a été appliqué.
Pour afficher les résultats pour lesquels il existe plus de dix mille enregistrements, interrogez la vue correspondante (le cas échéant) dans Schéma d’information de Snowflake.
La commande ne nécessite pas l’exécution d’un entrepôt en cours d’exécution.
La commande ne renvoie que les objets pour lesquels le rôle actuel de l’utilisateur s’est vu accorder au moins un privilège d’accès.
Le privilège d’accès MANAGE GRANTS permet implicitement à son titulaire de voir tous les objets du compte. Par défaut, seuls l’administrateur du compte (utilisateurs avec le rôle ACCOUNTADMIN) et l’administrateur de sécurité (utilisateurs avec le rôle SECURITYADMIN) ont le privilège MANAGE GRANTS.
Pour post-traiter la sortie de cette commande, vous pouvez utiliser l’opérateur de canal (
->>) ou la fonction RESULT_SCAN. Les deux constructions traitent la sortie comme un jeu de résultats que vous pouvez interroger.Par exemple, vous pouvez utiliser l’opérateur de canal ou la fonction RESULT_SCAN pour sélectionner des colonnes spécifiques à partir de la sortie de commande SHOW ou pour filtrer les lignes.
Lorsque vous faites référence aux colonnes de sortie, utilisez des identificateurs entre guillemets doubles pour les noms des colonnes. Par exemple, pour sélectionner la colonne de sortie
type, spécifiezSELECT "type".Vous devez utiliser des identificateurs entre guillemets doubles, car les noms des colonnes de sortie pour les commandes SHOW sont en minuscules. Les guillemets doubles garantissent que les noms des colonnes dans la liste SELECT ou dans la clause WHERE correspondent aux noms des colonnes dans la sortie de commande SHOW qui a été analysée.
Note
Les noms des colonnes dans la table de sortie pour la commande SHOW COLUMNS sont en minuscules (c’est-à-dire table_name, schema_name, column_name, etc.). Cependant, les valeurs dans la colonne column_name reflètent le nom de la colonne qui est stocké. Par exemple, si un nom de colonne est ajouté sans être placé entre guillemets doubles à l’aide de l’instruction ALTER TABLE ... ADD COLUMN MYCOLUMN, le nom de la colonne est stocké en majuscules et apparaît comme MYCOLUMN dans la colonne column_name.
Sortie¶
La sortie de commande fournit les propriétés des colonnes et les métadonnées dans les colonnes suivantes :
Colonne |
Description |
|---|---|
|
Name of the table or view that the column, dimension, fact, or metric belongs to. |
|
Schéma pour la table. |
|
Nom de la colonne, de la dimension, du fait ou de la métrique. |
|
Objet JSON contenant le type de données et les propriétés applicables de la colonne, de la dimension, du fait ou de la métrique. La paire clé-valeur Pour les types de données chaîne et numérique,
Les autres paires clé-valeur décrivent les propriétés applicables au type de données particulier. Par exemple :
|
|
Si la colonne peut contenir des valeurs NULL ou pas. |
|
Valeur par défaut, le cas échéant, définie pour la colonne. |
|
Une des valeurs suivantes :
|
|
|
|
Comment, if any, for the column, dimension, fact, or metric. |
|
Base de données pour la table. |
|
Début de l’incrémentation automatique et valeurs d’incrémentation, le cas échéant, pour la colonne. Si la colonne a la propriété NOORDER, la valeur comprend |
|
Enregistre des informations sur la dernière évolution de schéma déclenchée pour une colonne de table donnée. Cette colonne contient les sous-zones suivantes :
|
Exemples¶
L’exemple suivant crée une table, puis exécute la commande SHOW COLUMNS pour répertorier les colonnes de la 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 |
+-------------------+----------------+-------------------+---------------------------------------------------------------------------------------+-------+--------------------------+--------+------------+---------+---------------+---------------------------------------+-------------------------+