SHOW COLUMNS¶
Répertorie les colonnes des tables ou des vues pour lesquelles vous avez des privilèges d’accès. Cette commande peut être utilisée pour lister les colonnes d’une table/vue/schéma/base de données spécifiée (ou le schéma/la base de données actuels pour la session), ou votre compte entier.
- 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> } ]
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 [ <nom_base_données> ] | SCHEMA [ <nom_schéma> ] | TABLE | [ TABLE ] <nom_table> | VIEW | [ VIEW ] <nom_vue> }
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 un
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_name
non 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 un
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é
TABLE
sanstable_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
<nom_table>
(avec ou sans le mot cléTABLE
), alors :Si vous spécifiez un
<nom_table>
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
<nom_table>
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 <type_objet>. This session does not have a current database...
.
Si vous spécifiez un
<nom_de_table>
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.
.
Si vous spécifiez le mot clé
VIEW
ou un nom de vue, les règles pour les vues sont parallèles aux règles pour les tables.Par défaut : dépend si la session dispose actuellement d’une base de données en cours d’utilisation :
Base de données :
DATABASE
est 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 :
ACCOUNT
est 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¶
Les colonnes qui commencent par le préfixe
is_
renvoient soitY
(oui), soitN
(non).L’exécution de la commande ne nécessite pas un entrepôt virtuel en cours d’exécution.
La commande retourne un maximum de 10 000 enregistrements pour le type d’objet spécifié, comme dicté par les privilèges d’accès pour le rôle utilisé pour exécuter la commande ; tous les enregistrements au-dessus de la limite de 10 000 enregistrements ne sont pas retournés, même avec un filtre appliqué.
Pour afficher les résultats pour lesquels il existe plus de 10 000 enregistrements, interrogez la vue correspondante (s’il en existe une) dans Schéma d’information de Snowflake.
Pour post-traiter la sortie de cette commande, vous pouvez utiliser la fonction RESULT_SCAN qui traite la sortie comme une table qui peut être interrogée.
Si vous utilisez le mot clé
VIEW
et spécifiez un nom de vue, la vue peut être une vue matérialisée ou une vue non matérialisée.
Sortie¶
La sortie de commande fournit les propriétés des colonnes et les métadonnées dans les colonnes suivantes :
Colonne |
Description |
---|---|
|
Nom de la table à laquelle les colonnes appartiennent. |
|
Schéma pour la table. |
|
Nom de la colonne. |
|
Type de données de colonne et propriétés applicables, telles que la longueur, la précision, l’échelle, le caractère « peut être null », etc. ; notez que les colonnes de caractères et numériques affichent leur type de données générique (TEXT pour tous les types de caractères, FIXED pour tous les types numériques à virgule fixe et REAL pour tous les types numériques à virgule flottante). |
|
Si la colonne peut contenir des valeurs NULL ou pas. |
|
Valeur par défaut, le cas échéant, définie pour la colonne. |
|
Ne s’applique pas aux colonnes (affiche toujours COLUMN comme valeur). |
|
|
|
Commentaire, s’il y a lieu, pour la colonne. |
|
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¶
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 | |
+------------+-------------+-------------+---------------------------------------------------------------------------------------+-------+----------------+--------+------------+---------+---------------+-------------------------------+