SHOW TABLES

アクセス権限があるテーブルをリストします。これには、まだTime Travelの保持期間内にあり、削除できないテーブルも含まれます。このコマンドを使用して、現在の/指定されたデータベースまたはスキーマの、またはアカウント全体のテーブルを一覧表示できます。

出力は、データベース、スキーマ、およびテーブル名の辞書順に並べられたテーブルのメタデータとプロパティを返します(出力列の説明については、このトピックの 出力 を参照)。これは、提供されたフィルターを使用して結果をフィルターする場合に注意することが重要です。

こちらもご参照ください。

CREATE TABLEDROP TABLEUNDROP TABLEALTER TABLEDESCRIBE TABLE

TABLES ビュー (情報スキーマ)

構文

SHOW [ TERSE ] TABLES [ HISTORY ] [ LIKE '<pattern>' ]
                                  [ IN
                                        {
                                          ACCOUNT                  |

                                          DATABASE                 |
                                          DATABASE <database_name> |

                                          SCHEMA                   |
                                          SCHEMA <schema_name>     |
                                          <schema_name>
                                        }
                                  ]
                                  [ STARTS WITH '<name_string>' ]
                                  [ LIMIT <rows> [ FROM '<name_string>' ] ]
Copy

パラメーター

TERSE

オプションで、出力列のサブセットのみを返します。

  • created_on

  • name

  • kind

    kind 列の値は常に TABLE です。

  • database_name

  • schema_name

デフォルト: 値なし(出力にすべての列を含む)

HISTORY

必要に応じて、まだパージされていない(つまり、それぞれのTime Travel保持期間内にある)ドロップされたテーブルを含めます。ドロップされたテーブルに複数のバージョンが存在する場合、出力には各バージョンの行が表示されます。出力には、追加の dropped_on 列も含まれ、次を表示します:

  • 日付とタイムスタンプ(ドロップされたテーブルの場合)。

  • NULL (アクティブなテーブルの場合)。

デフォルト:値なし(ドロップされたテーブルは出力に 含まれない

LIKE 'pattern'

オプションで、オブジェクト名でコマンド出力をフィルタリングします。フィルターは、 SQL ワイルドカード文字(% および _)をサポートする、 大文字と小文字を区別しない パターンマッチングを使用します。

たとえば、次のパターンは 同じ 結果を返します。

... LIKE '%testing%' ...
... LIKE '%TESTING%' ...

. デフォルト: 値なし(フィルタリングは出力に非適用)。

[ IN ... ]

オプションで、コマンドのスコープを指定します。次のいずれかを指定します。

ACCOUNT

アカウント全体の記録を返します。

DATABASE. DATABASE db_name

現在使用中のデータベースまたは指定されたデータベース(db_name)の記録を返します。

db_name なしで DATABASE を指定し、かつデータベースが使用されていない場合、キーワードは出力に影響しません。

SCHEMA. SCHEMA schema_name. schema_name

現在使用中のスキーマまたは指定されたスキーマ(schema_name)の記録を返します。

データベースが使用中の場合、または完全修飾 schema_name (例: db.schema) を指定する場合、 SCHEMA はオプションです。

データベースが使用されていない場合は、 SCHEMA を指定しても出力には影響しません。

デフォルト: セッションで現在使用中のデータベースがあるかどうかによって異なります。

  • データベース: DATABASE がデフォルトです(つまり、コマンドはデータベースで表示する権限を持つオブジェクトを返します)。

  • データベースなし: ACCOUNT はデフォルトです(つまり、コマンドは、アカウントで表示する権限を持つオブジェクトを返します)。

STARTS WITH 'name_string'

オプションで、オブジェクト名の先頭に表示される文字に基づいてコマンド出力をフィルタリングします。文字列は一重引用符で囲む必要があり、 大文字と小文字を区別します

たとえば、次の文字列は 異なる 結果を返します。

... STARTS WITH 'B' ...
... STARTS WITH 'b' ...

. デフォルト: 値なし(フィルターは出力に適用されない)

LIMIT rows [ FROM 'name_string' ]

オプションで、返される行の最大数を制限すると同時に、結果の「ページネーション」を有効にします。実際に返される行数は、指定された制限より少ない場合があります。例えば、既存のオブジェクトの数が指定された制限より少ないなどです。

オプションの FROM 'name_string' サブ句は、結果の「カーソル」として効果的に機能します。これにより、指定された文字列と一致するオブジェクト名を持つ最初の行に続く指定された行数を取得できます。

  • 文字列は一重引用符で囲む必要があり、 大文字と小文字を区別します

  • 文字列に完全なオブジェクト名を含める必要はありません。部分的な名前がサポートされています。

デフォルト:値なし(出力に制限は適用されない)

注釈

FROM 'name_string' 句と STARTS WITH 'name_string' 句の両方をサポートする SHOW コマンドの場合、同じステートメントでこれらの両方の句を組み合わせることができます。ただし、両方の条件を満たしている必要があります。そうでない場合、互いにキャンセルされ、結果が返されません。

さらに、オブジェクトは名前の辞書式順序で返されるため、 FROM 'name_string' は、 STARTS WITH 'name_string' によって返される行よりも辞書式の値が大きい行のみを返します。

例:

  • ... STARTS WITH 'A' LIMIT ... FROM 'B' は結果を返しません。

  • ... STARTS WITH 'B' LIMIT ... FROM 'A' は結果を返しません。

  • ... STARTS WITH 'A' LIMIT ... FROM 'AB' は結果を返します(入力文字列に一致する行がある場合)。

使用上の注意

  • アカウント(またはデータベースまたはスキーマ)に多数のテーブルがある場合、アカウント全体(またはテーブルまたはスキーマ)を検索すると、大量のコンピューティングリソースが消費される可能性があります。

  • このコマンドの実行には、稼働中のウェアハウスを必要としません。

  • LIMIT rows の値は 10000 を超えることはできません。 LIMIT rows が省略され、結果セットが10K行より大きい場合、コマンドはエラーになります。

    10Kを超える記録が存在する結果を表示するには、 LIMIT rows を含めるか、 Snowflake Information Schema の対応するビューをクエリします。

  • このコマンドの出力を後処理するには、 RESULT_SCAN 関数を使用できます。この関数は、出力をクエリ可能なテーブルとして扱います。

出力

コマンド出力では、次の列にテーブルプロパティとメタデータが提供されます。

説明

created_on

テーブルが作成された日時。

名前

テーブルの名前。

database_name

テーブルが保存されているデータベース。

schema_name

テーブルが保存されているスキーマ。

種類

テーブルタイプ: TABLE (永続テーブル用)、 TEMPORARY、または TRANSIENT。

コメント

テーブルのコメント。

cluster_by

テーブルのクラスタリングキーとして定義された列。

テーブル内の行数。外部テーブルの場合はNULLを返します。

bytes

クエリでテーブル全体がスキャンされる場合にスキャンされるバイト数。この数は、テーブルの実際の物理バイト(ディスクに保存されているバイト)数とは異なる場合があることに注意してください。

所有者

テーブルを所有するロール。

retention_time

変更および削除されたデータがTime Travel用に保持される日数。

dropped_on

テーブルがドロップされた日時。テーブルがアクティブな場合は NULL。この列は、コマンドに HISTORY キーワードが指定されている場合にのみ表示されます。

automatic_clustering

アカウントで 自動クラスタリング が有効になっている場合、テーブルで明示的に有効(ON)か無効(OFF)かを指定します。アカウントで自動クラスタリングが有効になっていない場合、この列は表示されません。

change_tracking

ON の場合は、変更の追跡が有効になります。 ストリーム または SELECT ステートメントの CHANGES 句を使用して、この変更追跡データをクエリできます。 OFF の場合、変更の追跡が現在は無効になっていますが、 有効化 されている可能性はあります。

search_optimization

ON の場合、テーブルでは 検索最適化サービス が有効になっています。それ以外では、値は OFF です。

search_optimization_progress

検索用に最適化されたテーブルのパーセンテージ。この値は、最適化が最初にテーブルに追加されたとき、および検索最適化サービスで保守が行われたときに増加します。新しく最適化されたテーブルでの検索最適化のパフォーマンス向上を測定する前に、これがテーブルの完全最適化を示すまで待ちます。

search_optimization_bytes

このテーブルのために検索最適化サービスが消費するストレージの追加バイト数。

is_external

外部テーブルの場合は Y。それ以外の場合は N

enable_schema_evolution

テーブルで スキーマ進化 が有効になっている場合は Y。それ以外の場合は NCREATE TABLE または ALTER TABLE コマンドを使用して、テーブルスキーマの自動進化を有効にできます。

owner_role_type

オブジェクトを所有するロールのタイプ、 ROLE または DATABASE_ROLE のいずれか。 . Snowflake Native App がオブジェクトを所有する場合、値は APPLICATION になります。 . 削除されたオブジェクトには所有者ロールがないため、オブジェクトを削除した場合、Snowflakeは NULL を返します。

is_event

イベントテーブルである場合は Y。それ以外の場合は N

budget

オブジェクトが予算によって監視されている場合、 予算 の名前です。それ以外の場合は、 NULL です。

is_iceberg

テーブルが Icebergテーブル の場合は Y。それ以外の場合は N

テーブルのために指定できるプロパティの詳細については、 CREATE TABLE をご参照ください。

注釈

クローンテーブルおよび削除されたデータを含むテーブルの場合、テーブルに表示される bytes は、テーブルの物理バイト数と異なる場合があります。

  • クローンテーブルは、新しい行がテーブルに追加されるか、テーブル内の既存の行が変更または削除されるまで、追加のデータストレージを利用しません。テーブルがほとんどまたはまったく変更されていない場合、表示されるバイト数は、テーブルに保存されている実際の物理バイト数よりも 多くなります

  • テーブルから削除されたデータは、データのTime Travel保持期間(デフォルトは1日)とFail-safe期間(7日)の両方が経過するまでSnowflakeで維持されます。これら2つの期間中、表示されるバイト数は、テーブルに保存されている実際の物理バイト数よりも 少なくなります

クローン作成、Time Travel、およびFail-safeに関連するバイト単位のテーブルサイズの詳細については、 TABLE_STORAGE_METRICS Information Schemaビューをご参照ください。

使用上の注意

結果は、データベース名、スキーマ名、テーブル名の順に並べ替えられます。これは、データベースの結果に複数のスキーマからのテーブルが含まれる可能性があり、ページネーションの崩れる可能性があることを意味します。ページネーションが期待通りに動作するためには、単一のスキーマに対して SHOW TABLES ステートメントを実行する必要があります。SHOW TABLES コマンドに IN SCHEMA schema_name パラメーターを使用することができます。あるいは、 SHOW TABLES ステートメントを実行する前に USE SCHEMA schema_name を実行すると、現在のコンテキストでスキーマを使用することができます。

tpch.public スキーマで表示する権限がある、名前が line で始まるすべてのテーブルを表示します。

SHOW TABLES LIKE 'line%' IN tpch.public;
Copy

ドロップされたテーブルを含む、 tpch.public スキーマで表示する権限があるすべてのテーブルを表示します。

SHOW TABLES HISTORY IN tpch.public;
Copy