Kategorien:

DDL für Tabellen, Ansichten und Sequenzen

SHOW COLUMNS

Listet die Spalten in den Tabellen oder Ansichten auf, für die Sie Zugriffsrechte haben. Mit diesem Befehl können Sie die Spalten für eine angegebene Tabelle/Ansicht/Datenbank oder ein angegebenes Schema (oder das aktuelle Schema/die aktuelle Datenbank für die Sitzung) oder Ihr gesamtes Konto auflisten.

Siehe auch:

DESCRIBE TABLE

Ansicht COLUMNS (Information Schema)

Syntax

SHOW COLUMNS [ LIKE '<pattern>' ]
             [ IN { ACCOUNT | DATABASE [ <database_name> ] | SCHEMA [ <schema_name> ] | TABLE | [ TABLE ] <table_name> | VIEW | [ VIEW ] <view_name> } ]

Parameter

LIKE '<Muster>'

Filtert die Befehlsausgabe nach dem Objektnamen. Der Filter verwendet eine Mustererkennung ohne Berücksichtigung der Groß-/Kleinschreibung, aber mit Unterstützung von SQL-Platzhalterzeichen (% und _).

Die folgenden Muster geben beispielsweise die gleichen Ergebnisse zurück:

... LIKE '%testing%' ...
... LIKE '%TESTING%' ...
IN { ACCOUNT | DATABASE [ <Datenbankname> ] | SCHEMA [ <Schemaname> ] | TABLE | [ TABLE ] <Tabellenname> | VIEW | [ VIEW ] <Ansichtsname> }

Gibt den Geltungsbereich des Befehls an, wodurch festgelegt wird, ob der Befehl Datensätze nur für die aktuelle/angegebene Datenbank, das aktuelle/angegebene Schema, die aktuelle/angegebene Tabelle oder Ansicht auflistet oder für Ihr gesamtes Konto.

Wenn Sie das Schlüsselwort ACCOUNT angeben, ruft der Befehl Datensätze für alle Schemas in allen Datenbanken des aktuellen Kontos ab.

Wenn Sie das Schlüsselwort DATABASE angeben, dann gilt Folgendes:

  • Wenn Sie einen Wert für <database_name> angeben, ruft der Befehl Datensätze für alle Schemas der angegebenen Datenbank ab.

  • Wenn Sie keinen Wert für <database_name> angeben, dann gilt Folgendes:

    • Wenn es eine aktuelle Datenbank gibt, ruft der Befehl Datensätze für alle Schemas in der aktuellen Datenbank ab.

    • Wenn es keine aktuelle Datenbank gibt, ruft der Befehl Datensätze aller Datenbanken und Schemas im Konto ab.

Wenn Sie das Schlüsselwort SCHEMA angeben, dann gilt Folgendes:

  • Wenn Sie einen qualifizierten Schemanamen angeben (z. B. my_database.my_schema), ruft der Befehl Datensätze für die angegebene Datenbank und das angegebene Schema ab.

  • Wenn Sie einen nicht qualifizierten Wert für <schema_name> angeben, dann gilt Folgendes:

    • Wenn es eine aktuelle Datenbank gibt, ruft der Befehl Datensätze für das angegebene Schema in der aktuellen Datenbank ab.

    • Wenn keine aktuelle Datenbank vorhanden ist, zeigt der Befehl den Fehler SQL compilation error: Object does not exist, or operation cannot be performed an.

  • Wenn Sie keinen Wert für <schema_name> angeben, dann gilt Folgendes:

    • Wenn es eine aktuelle Datenbank gibt, dann gilt Folgendes:

      • Wenn es ein aktuelles Schema gibt, dann ruft der Befehl Datensätze für das aktuelle Schema in der aktuellen Datenbank ab.

      • Wenn kein aktuelles Schema vorhanden ist, ruft der Befehl Datensätze für alle Schemas in der aktuellen Datenbank ab.

    • Wenn es keine aktuelle Datenbank gibt, ruft der Befehl Datensätze für alle Datenbanken und alle Schemas im Konto ab.

Wenn Sie das Schlüsselwort TABLE ohne einen Wert für table_name angeben, dann gilt Folgendes:

  • Wenn es eine aktuelle Datenbank gibt, dann gilt Folgendes:

    • Wenn es ein aktuelles Schema gibt, dann ruft der Befehl Datensätze für das aktuelle Schema in der aktuellen Datenbank ab.

    • Wenn kein aktuelles Schema vorhanden ist, ruft der Befehl Datensätze für alle Schemas in der aktuellen Datenbank ab.

  • Wenn es keine aktuelle Datenbank gibt, ruft der Befehl Datensätze für alle Datenbanken und alle Schemas im Konto ab.

Wenn Sie einen <Tabellennamen> (mit oder ohne Schlüsselwort TABLE) angeben, dann gilt Folgendes:

  • Wenn Sie einen vollqualifizierten <Tabellennamen> (z. B. my_database_name.my_schema_name.my_table_name) angeben, dann ruft der Befehl alle Datensätze für die angegebene Tabelle ab.

  • Wenn Sie einen Schema-qualifizierten <Tabellennamen> (z. B. my_schema_name.my_table_name) angeben, dann:

    • Wenn eine aktuelle Datenbank vorhanden ist, ruft der Befehl alle Datensätze für die angegebene Tabelle ab.

    • Wenn keine aktuelle Datenbank vorhanden ist, zeigt der Befehl eine Fehlermeldung ähnlich wie Cannot perform SHOW <Objekttyp>. This session does not have a current database... an.

  • Wenn Sie einen nicht qualifizierten <Tabellennamen> angeben, dann gilt Folgendes:

    • Wenn eine aktuelle Datenbank und ein aktuelles Schema vorhanden sind, dann ruft der Befehl Datensätze für die angegebene Tabelle im aktuellen Schema der aktuellen Datenbank ab.

    • Wenn keine aktuelle Datenbank oder kein aktuelles Schema vorhanden ist, zeigt der Befehl eine Fehlermeldung ähnlich der folgenden an: SQL compilation error: <Objekt> does not exist or not authorized..

Wenn Sie das Schlüsselwort VIEW oder einen Ansichtsnamen angeben, gelten die Regeln für Ansichten parallel zu den Regeln für Tabellen.

Standard: Hängt davon ab, ob für die Sitzung aktuell eine Datenbank verwendet wird:

  • Datenbank: DATABASE ist der Standardwert (d. h. der Befehl gibt die Objekte zurück, für die Sie Berechtigungen zum Anzeigen in der Datenbank haben).

  • Keine Datenbank: ACCOUNT ist die Standardeinstellung (d. h. der Befehl gibt die Objekte zurück, für die Sie Berechtigungen zum Anzeigen in Ihrem Konto haben).

Nutzungshinweise

  • Für die Ausführung des Befehls ist kein aktives Warehouse erforderlich.

  • Der Befehl gibt maximal 10.000 Datensätze für den angegebenen Objekttyp zurück, wie durch die Zugriffsrechte für die Rolle vorgegeben, die zur Ausführung des Befehls verwendet wird. Datensätze, die über dem Limit von 10.000 liegen, werden nicht zurückgegeben, selbst wenn ein Filter angewendet wird.

    Um Ergebnisse anzuzeigen, für die mehr als 10.000 Datensätze existieren, fragen Sie die entsprechende Ansicht (falls vorhanden) in der Datei Snowflake Information Schema ab.

  • Zur Weiterverarbeitung der Ausgabe dieses Befehls können Sie die Funktion RESULT_SCAN verwenden, die die Ausgabe wie eine abfragbare Tabelle behandelt.

  • Wenn Sie das Schlüsselwort VIEW verwenden und einen Ansichtsnamen angeben, kann die Ansicht eine materialisierte Ansicht oder eine nicht materialisierte Ansicht sein.

Ausgabe

Die Befehlsausgabe enthält Spalteneigenschaften und Metadaten in den folgenden Spalten:

+------------+-------------+-------------+-----------+-------+---------+------+------------+---------+---------------+---------------+
| table_name | schema_name | column_name | data_type | null? | default | kind | expression | comment | database_name | autoincrement |
|------------+-------------+-------------+-----------+-------+---------+------+------------+---------+---------------+---------------|

Spalte

Beschreibung

table_name

Name der Tabelle, zu der die Spalten gehören.

schema_name

Schema der Tabelle.

column_name

Name der Spalte.

data_type

Spaltendatentyp und anwendbare Eigenschaften wie Länge, Genauigkeit, Skalierung, Nullwert usw. Beachten Sie, dass Zeichenspalten und numerische Spalten ihren generischen Datentyp und nicht ihren definierten Datentyp anzeigen (d. h. TEXT für alle Zeichentypen, FIXED für alle numerischen Festkommatypen und REAL für alle numerischen Gleitkommatypen).

null?

Gibt an, ob die Spalte NULL-Werte enthalten kann.

default

Der ggf. für die Spalte definierte Standardwert.

kind

Nicht anwendbar für Spalten (zeigt immer COLUMN als Wert an).

expression

comment

Der ggf. für die Spalte vorhandene Kommentar.

database_name

Datenbank der Tabelle.

autoincrement

Die ggf. für die Spalte vorhandenen Start- und Inkrementierungswerte für die automatische Inkrementierung.

Beispiele

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         |                               |
+------------+-------------+-------------+---------------------------------------------------------------------------------------+-------+----------------+--------+------------+---------+---------------+-------------------------------+