跳到主要内容
跳到主要内容

INFORMATION_SCHEMA

INFORMATION_SCHEMA (或: information_schema) 是一个系统数据库,它提供了对数据库对象元数据的(某种程度上)标准化的与 DBMS 无关的视图INFORMATION_SCHEMA 中的视图一般低于正常的系统表,但工具可以使用它们以跨 DBMS 的方式获取基本信息。INFORMATION_SCHEMA 中视图的结构和内容知识应以向后兼容的方式演变,即仅添加新功能,而不更改或删除现有功能。在内部实现方面,INFORMATION_SCHEMA 中的视图通常映射到常规系统表,如 system.columnssystem.databasessystem.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

包含从 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) — 显示创建的视图是否为物化的。可能的值:
    • 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)) — 当前未使用。