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。table_collation
(Nullable(String)) — テーブルのデフォルト照合順序。常にutf8mb4_0900_ai_ci
。table_comment
(Nullable(String)) — テーブル作成時に使用されるコメント。
例
クエリ:
結果:
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)) — 現在使用されていません。