SHOW COLUMNS¶
アクセス権限があるテーブルまたはビューの列と、 セマンティックビュー 内のディメンション、ファクト、メトリックを一覧表示します。このコマンドを使用して、次のオブジェクトの列、ディメンション、ファクト、メトリックを一覧表示します。
指定したテーブルまたはビュー。
指定されたスキーマまたは現在使用中のスキーマ内のすべてのテーブルとビュー。
指定されたデータベース内または現在使用中のデータベース内のすべてのテーブルとビュー。
アカウント内のすべてのテーブルとビュー。
- こちらもご参照ください。
-
COLUMNS ビュー (情報スキーマ)
構文¶
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> ]
パラメーター¶
LIKE '<パターン>'オブジェクト名でコマンド出力をフィルターします。フィルターは、 SQL ワイルドカード文字(
%および_)をサポートする、 大文字と小文字を区別しない パターンマッチングを使用します。たとえば、次のパターンは同じ結果を返します。
... 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> }コマンドのスコープを指定します。これにより、コマンドが現在または指定のデータベース、スキーマ、テーブル、またはビューの記録のみをリストするか、アカウント全体の記録をリストするかを決定します。
キーワード
ACCOUNTを指定すると、コマンドは、現在のアカウントのデータベースすべてにあるすべてのスキーマの記録を取得します。キーワード
DATABASEを指定すると、次のようになります。db_nameを指定すると、コマンドは、指定されたデータベースのスキーマすべての記録を取得します。:samp:`{db_name}`を指定しない場合、以下のようになります:
現在のデータベースがある場合、コマンドは、現在のデータベースにあるスキーマすべての記録を取得します。
現在のデータベースがない場合、コマンドは、アカウントにあるすべてのデータベースとスキーマの記録を取得します。
キーワード
SCHEMAを指定すると、次のようになります。修飾されたスキーマ名(例:
my_database.my_schema)を指定すると、コマンドは、指定されたデータベースとスキーマの記録を取得します。修飾されていない
schema_nameを指定すると、次のようになります。現在のデータベースがある場合、コマンドは、現在のデータベースにある指定されたスキーマの記録を取得します。
現在のデータベースがない場合、コマンドは、エラー
SQL compilation error: Object does not exist, or operation cannot be performedを表示します。
:samp:`{schema_name}`を指定しない場合、以下のようになります:
現在のデータベースがある場合は、次のようになります。
現在のスキーマがある場合、コマンドは、現在のデータベースにある現在のスキーマの記録を取得します。
現在のスキーマがない場合、コマンドは、現在のデータベースにあるスキーマすべての記録を取得します。
現在のデータベースがない場合、コマンドは、アカウントにあるすべてのデータベースとすべてのスキーマの記録を取得します。
table_nameなしでキーワードTABLEを指定すると、次のようになります。現在のデータベースがある場合は、次のようになります。
現在のスキーマがある場合、コマンドは、現在のデータベースにある現在のスキーマの記録を取得します。
現在のスキーマがない場合、コマンドは、現在のデータベースにあるスキーマすべての記録を取得します。
現在のデータベースがない場合、コマンドは、アカウントにあるすべてのデータベースとすべてのスキーマの記録を取得します。
<テーブル名>(キーワードTABLEの有無にかかわらず)を指定すると、次のようになります。完全修飾された
<テーブル名>(例:my_database_name.my_schema_name.my_table_name)を指定すると、コマンドは指定されたテーブルのすべての記録を取得します。スキーマ修飾された
<テーブル名>(例:my_schema_name.my_table_name)を指定すると、次のようになります。現在のデータベースが存在する場合、コマンドは、指定されたテーブルのすべての記録を取得します。
現在のデータベースが存在しない場合、コマンドは
Cannot perform SHOW <オブジェクト型>.This session does not have a current database...のようなエラーを表示します。
修飾されていない
<テーブル名>を指定すると、次のようになります。現在のデータベースと現在のスキーマが存在する場合、コマンドは、現在のデータベースにおける現在のスキーマで指定されたテーブルの記録を取得します。
現在のデータベースが存在しないか、現在のスキーマが存在しない場合、コマンドは、
SQL compilation error: <オブジェクト> 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.デフォルト: セッションで現在使用中のデータベースがあるかどうかによって異なります。
データベース:
DATABASEがデフォルトです(つまり、コマンドはデータベースで表示する権限を持つオブジェクトを返します)。データベースなし:
ACCOUNTはデフォルトです(つまり、コマンドは、アカウントで表示する権限を持つオブジェクトを返します)。
使用上の注意¶
You can use the
VIEWkeyword and specify a view name for standard views, materialized views, and semantic views.
コマンドは、コマンドを実行するために使用されるロールのアクセス権限によって決定された通り、指定されたオブジェクトタイプに対して 最大 1万件の記録を返します。1万件を超える記録は、フィルターを適用しても返されません。
1万件を超える記録が存在する結果を表示するには、 Snowflake Information Schema で対応するビュー(存在する場合)をクエリします。
このコマンドの実行には、稼働中のウェアハウスは必要ありません。
このコマンドは、現在のユーザーの現在のロールに少なくとも1つのアクセス権限が付与されているオブジェクトのみを返します。
MANAGE GRANTS アクセス権限により、所有者はアカウント内のすべてのオブジェクトを暗黙的に参照できます。デフォルトでは、アカウント管理者( ACCOUNTADMIN ロールを持つユーザー)とセキュリティ管理者( SECURITYADMIN ロールを持つユーザー)のみが MANAGE GRANTS 権限を持っています。
このコマンドの出力を後処理するには、 パイプ演算子 (
->>)または RESULT_SCAN 関数。どちらのコンストラクトも、出力を クエリできる結果セットとして扱います。たとえば、パイプ演算子または RESULT_SCAN 関数を使用して、 SHOW コマンドの出力から特定の列を選択したり、行をフィルター処理したりできます。
出力列を参照する場合は、列名に 二重引用符で囲まれた識別子 を使用します。たとえば、出力列
typeを選択するには、SELECT "type"を指定します。SHOW コマンドの出力列名は小文字のため、二重引用符で囲まれた識別子を使用する必要があります。二重引用符により、 SELECT リストまたは WHERE 句内の列名が、スキャンされた SHOW コマンド出力内の列名と一致することが保証されます。
注釈
SHOWCOLUMNS コマンドの出力テーブル内の列名は小文字です(つまり table_name、 schema_name、 column_name など)ただし、 column_name 列の値は格納されている列名を反映します。たとえば、 ALTER TABLE ... ADD COLUMN MYCOLUMN ステートメントを使用して列名を二重引用符で囲まずに追加した場合、列名は大文字で保存され、 column_name 列に MYCOLUMN として表示されます。
出力¶
コマンド出力は、次の列の列プロパティとメタデータを提供します。
列 |
説明 |
|---|---|
|
Name of the table or view that the column, dimension, fact, or metric belongs to. |
|
テーブルのスキーマ。 |
|
列、ディメンション、ファクト、またはメトリックの名前。 |
|
列、ディメンション、ファクト、メトリックのデータ型と適用可能なプロパティを含む JSON オブジェクト。
文字列 および 数値 データ型の場合、
他のキーと値のペアは、特定のデータ型に適用可能なプロパティを記述します。例:
|
|
列に NULL 値を含めることができるかどうか。 |
|
列に定義されているデフォルト値(ある場合)。 |
|
次の値のいずれかです。
|
|
|
|
Comment, if any, for the column, dimension, fact, or metric. |
|
テーブルのデータベース。 |
|
列の開始値と増分値(存在する場合)の自動増分。列が NOORDER プロパティを持つ場合は、値に |
|
指定されたテーブルの列に対してトリガーされた最新のスキーマ進化に関する情報を記録します。この列には以下のサブフィールドが含まれています。
|
例¶
次の例では、テーブルを作成し、 SHOWCOLUMNS コマンドを実行してテーブルの列を一覧表示します。
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 |
+-------------------+----------------+-------------------+---------------------------------------------------------------------------------------+-------+--------------------------+--------+------------+---------+---------------+---------------------------------------+-------------------------+