INFORMATION_SCHEMA
INFORMATION_SCHEMA
(または information_schema
)は、データベースオブジェクトのメタデータに対する(ある程度)標準化された、DBMS非依存のビューを提供するシステムデータベースです。INFORMATION_SCHEMA
のビューは通常のシステムテーブルよりも劣りますが、ツールはこれらを使用して、クロスDBMSの方法で基本情報を取得できます。INFORMATION_SCHEMA
のビューの構造と内容は後方互換性のある方法で進化することになっています。つまり、新しい機能が追加されるだけで、既存の機能は変更されたり削除されたりしません。内部実装の観点から、INFORMATION_SCHEMA
のビューは通常、system.columns、system.databases、およびsystem.tablesのような通常のシステムテーブルにマッピングされます。
INFORMATION_SCHEMA
には次のビューが含まれています:
大文字と小文字を区別しない同等のビュー、たとえばINFORMATION_SCHEMA.columns
は、他のデータベースとの互換性の理由から提供されています。これらのビューにあるすべてのカラムについても同様です - 小文字(たとえば、table_name
)と大文字(TABLE_NAME
)の両方のバリアントが提供されています。
COLUMNS
system.columnsシステムテーブルから読み取ったカラムと、ClickHouseでサポートされていないか、意味がないカラム(常にNULL
)を含んでいますが、標準により必要です。
カラム:
table_catalog
(String) — テーブルが存在するデータベースの名前。table_schema
(String) — テーブルが存在するデータベースの名前。table_name
(String) — テーブル名。column_name
(String) — カラム名。ordinal_position
(UInt64) — テーブル内のカラムの順序位置、1から始まります。column_default
(String) — デフォルト値の式、または定義されていない場合は空文字列。is_nullable
(UInt8) — カラムタイプがNullable
であるかを示すフラグ。data_type
(String) — カラムのタイプ。character_maximum_length
(Nullable(UInt64)) — バイナリデータ、文字データ、またはテキストデータおよび画像の最大バイト数。ClickHouseではFixedString
データタイプにのみ意味があります。それ以外の場合、NULL
が返されます。character_octet_length
(Nullable(UInt64)) — バイナリデータ、文字データ、またはテキストデータおよび画像の最大バイト数。ClickHouseではFixedString
データタイプにのみ意味があります。それ以外の場合、NULL
が返されます。numeric_precision
(Nullable(UInt64)) — おおよその数値データ、正確な数値データ、整数データ、または金銭データの精度。ClickHouseでは整数型のビット幅およびDecimal
型の小数精度です。それ以外の場合、NULL
が返されます。numeric_precision_radix
(Nullable(UInt64)) — 数値システムの基数で、アプローチ数値データ、正確な数値データ、整数データ、または貨幣データの精度です。ClickHouseでは整数型に対しては2、Decimal
型に対しては10が使用されます。それ以外の場合、NULL
が返されます。numeric_scale
(Nullable(UInt64)) — おおよその数値データ、正確な数値データ、整数データ、または貨幣データのスケールです。ClickHouseではDecimal
型にのみ意味があります。それ以外の場合、NULL
が返されます。datetime_precision
(Nullable(UInt64)) —DateTime64
データタイプの小数精度。他のデータタイプの場合、NULL
が返されます。character_set_catalog
(Nullable(String)) —NULL
、サポートされていません。character_set_schema
(Nullable(String)) —NULL
、サポートされていません。character_set_name
(Nullable(String)) —NULL
、サポートされていません。collation_catalog
(Nullable(String)) —NULL
、サポートされていません。collation_schema
(Nullable(String)) —NULL
、サポートされていません。collation_name
(Nullable(String)) —NULL
、サポートされていません。domain_catalog
(Nullable(String)) —NULL
、サポートされていません。domain_schema
(Nullable(String)) —NULL
、サポートされていません。domain_name
(Nullable(String)) —NULL
、サポートされていません。extra
(Nullable(String)) —MATERIALIZED
型のカラムにはSTORED GENERATED
、ALIAS
型のカラムにはVIRTUAL GENERATED
、DEFAULT
型のカラムにはDEFAULT_GENERATED
、またはNULL
。
例
クエリ:
結果:
SCHEMATA
system.databasesシステムテーブルから読み取ったカラムと、ClickHouseでサポートされていないか、意味がないカラム(常にNULL
)を含んでいますが、標準により必要です。
カラム:
catalog_name
(String) — データベースの名前。schema_name
(String) — データベースの名前。schema_owner
(String) — スキーマの所有者名、常に'default'
。default_character_set_catalog
(Nullable(String)) —NULL
、サポートされていません。default_character_set_schema
(Nullable(String)) —NULL
、サポートされていません。default_character_set_name
(Nullable(String)) —NULL
、サポートされていません。sql_path
(Nullable(String)) —NULL
、サポートされていません。
例
クエリ:
結果:
TABLES
system.tablesシステムテーブルから読み取ったカラムを含んでいます。
カラム:
table_catalog
(String) — テーブルが存在するデータベースの名前。table_schema
(String) — テーブルが存在するデータベースの名前。table_name
(String) — テーブル名。table_type
(String) — テーブルタイプ。可能な値:BASE TABLE
VIEW
FOREIGN TABLE
LOCAL TEMPORARY
SYSTEM VIEW
table_rows
(Nullable(UInt64)) — 総行数。決定できなかった場合はNULL。data_length
(Nullable(UInt64)) — ディスク上のデータサイズ。決定できなかった場合はNULL。index_length
(Nullable(UInt64)) — 主キー、二次インデックス、およびすべてのマークの総サイズ。table_collation
(Nullable(String)) — テーブルのデフォルト照合順序。常にutf8mb4_0900_ai_ci
。table_comment
(Nullable(String)) — テーブル作成時に使用されたコメント。
例
クエリ:
結果:
VIEWS
system.tablesシステムテーブルから読み取ったカラムを含んでいます、テーブルエンジンとしてViewが使用されている場合。
カラム:
table_catalog
(String) — テーブルが存在するデータベースの名前。table_schema
(String) — テーブルが存在するデータベースの名前。table_name
(String) — テーブル名。view_definition
(String) — ビューのためのSELECT
クエリ。check_option
(String) —NONE
、チェックなし。is_updatable
(Enum8) —NO
、ビューは更新されません。is_insertable_into
(Enum8) — 作成されたビューがmaterializedかどうかを示します。可能な値:NO
— 作成されたビューはマテリアライズされていません。YES
— 作成されたビューはマテリアライズされています。
is_trigger_updatable
(Enum8) —NO
、トリガーは更新されません。is_trigger_deletable
(Enum8) —NO
、トリガーは削除されません。is_trigger_insertable_into
(Enum8) —NO
、トリガーにはデータが挿入されません。
例
クエリ:
結果:
KEY_COLUMN_USAGE
制約によって制限されるsystem.tablesシステムテーブルからのカラムを含んでいます。
カラム:
constraint_catalog
(String) — 現在未使用。常にdef
。constraint_schema
(String) — 制約が属するスキーマ(データベース)の名前。constraint_name
(Nullable(String)) — 制約の名前。table_catalog
(String) — 現在未使用。常にdef
。table_schema
(String) — テーブルが属するスキーマ(データベース)の名前。table_name
(String) — 制約を持つテーブルの名前。column_name
(Nullable(String)) — 制約を持つカラムの名前。ordinal_position
(UInt32) — 現在未使用。常に1
。position_in_unique_constraint
(Nullable(UInt32)) — 現在未使用。常にNULL
。referenced_table_schema
(Nullable(String)) — 現在未使用。常にNULL。referenced_table_name
(Nullable(String)) — 現在未使用。常にNULL。referenced_column_name
(Nullable(String)) — 現在未使用。常にNULL。
例
結果:
REFERENTIAL_CONSTRAINTS
外部キーに関する情報を含んでいます。現在は空の結果(行なし)を返しますが、これはTableau Onlineのようなサードパーティツールとの互換性を提供するのに十分です。
カラム:
constraint_catalog
(String) — 現在未使用。constraint_schema
(String) — 現在未使用。constraint_name
(Nullable(String)) — 現在未使用。unique_constraint_catalog
(String) — 現在未使用。unique_constraint_schema
(String) — 現在未使用。unique_constraint_name
(Nullable(String)) — 現在未使用。match_option
(String) — 現在未使用。update_rule
(String) — 現在未使用。delete_rule
(String) — 現在未使用。table_name
(String) — 現在未使用。referenced_table_name
(String) — 現在未使用。
STATISTICS
テーブルインデックスに関する情報を提供します。現在は空の結果(行なし)を返しますが、これはTableau Onlineのようなサードパーティツールとの互換性を提供するのに十分です。
カラム:
table_catalog
(String) — 現在未使用。table_schema
(String) — 現在未使用。table_name
(String) — 現在未使用。non_unique
(Int32) — 現在未使用。index_schema
(String) — 現在未使用。index_name
(Nullable(String)) — 現在未使用。seq_in_index
(UInt32) — 現在未使用。column_name
(Nullable(String)) — 現在未使用。collation
(Nullable(String)) — 現在未使用。cardinality
(Nullable(Int64)) — 現在未使用。sub_part
(Nullable(Int64)) — 現在未使用。packed
(Nullable(String)) — 現在未使用。nullable
(String) — 現在未使用。index_type
(String) — 現在未使用。comment
(String) — 現在未使用。index_comment
(String) — 現在未使用。is_visible
(String) — 現在未使用。expression
(Nullable(String)) — 現在未使用。