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 TABLEVIEWFOREIGN TABLELOCAL TEMPORARYSYSTEM 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)) — 現在未使用。