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 となる)が、標準上存在している必要があるカラムを含みます。
カラム:
例
クエリ:
結果:
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 システムテーブルから読み取った列を含みます。
Columns:
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)) — テーブル作成時に指定されたコメント。
Example
Query:
結果:
VIEWS
テーブルエンジン View が使用されている場合に、system.tables システムテーブルから読み込まれるカラムが含まれます。
カラム:
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) — 作成されたビューがマテリアライズドビューかどうかを示します。取り得る値: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)) — 現在は未使用。