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

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_catalogString)— 表所在数据库的名称。
  • table_schemaString)— 表所在数据库的名称。
  • table_nameString)— 表名。
  • column_nameString)— 列名。
  • ordinal_positionUInt64)— 列在表中的顺序位置,从 1 开始。
  • column_defaultString)— 默认值的表达式,如果未定义则为空字符串。
  • is_nullableUInt8)— 表示列类型是否为 Nullable 的标志。
  • data_typeString)— 列类型。
  • character_maximum_lengthNullable(UInt64))— 二进制数据、字符数据或文本数据和图像的字节最大长度。在 ClickHouse 中仅对 FixedString 数据类型有意义。否则返回 NULL 值。
  • character_octet_lengthNullable(UInt64))— 二进制数据、字符数据或文本数据和图像的字节最大长度。在 ClickHouse 中仅对 FixedString 数据类型有意义。否则返回 NULL 值。
  • numeric_precisionNullable(UInt64))— 近似数字数据、精确数字数据、整数数据或货币数据的精度。在 ClickHouse 中,它是整数类型的位宽和 Decimal 类型的十进制精度。否则返回 NULL 值。
  • numeric_precision_radixNullable(UInt64))— 数字系统的基数是近似数字数据、精确数字数据、整数数据或货币数据的精度。在 ClickHouse 中对于整数类型为 2,对于 Decimal 类型为 10。否则返回 NULL 值。
  • numeric_scaleNullable(UInt64))— 近似数字数据、精确数字数据、整数数据或货币数据的.scale。在 ClickHouse 中仅对 Decimal 类型有意义。否则返回 NULL 值。
  • datetime_precisionNullable(UInt64))— DateTime64 数据类型的十进制精度。对于其他数据类型,返回 NULL 值。
  • character_set_catalogNullable(String))— NULL,不支持。
  • character_set_schemaNullable(String))— NULL,不支持。
  • character_set_nameNullable(String))— NULL,不支持。
  • collation_catalogNullable(String))— NULL,不支持。
  • collation_schemaNullable(String))— NULL,不支持。
  • collation_nameNullable(String))— NULL,不支持。
  • domain_catalogNullable(String))— NULL,不支持。
  • domain_schemaNullable(String))— NULL,不支持。
  • domain_nameNullable(String))— NULL,不支持。
  • extraNullable(String))— MATERIALIZED 类型列的 STORED GENERATEDALIAS 类型列的 VIRTUAL GENERATEDDEFAULT 类型列的 DEFAULT_GENERATED,或者 NULL

示例

查询:

结果:

SCHEMATA

包含从 system.databases 系统表中读取的列以及在 ClickHouse 中不支持或没有意义(始终为 NULL)的列,但根据标准必须存在。

列:

  • catalog_nameString)— 数据库的名称。
  • schema_nameString)— 数据库的名称。
  • schema_ownerString)— 模式所有者名称,始终为 'default'
  • default_character_set_catalogNullable(String))— NULL,不支持。
  • default_character_set_schemaNullable(String))— NULL,不支持。
  • default_character_set_nameNullable(String))— NULL,不支持。
  • sql_pathNullable(String))— NULL,不支持。

示例

查询:

结果:

TABLES

包含从 system.tables 系统表读取的列。

列:

  • table_catalogString)— 表所在数据库的名称。
  • table_schemaString)— 表所在数据库的名称。
  • table_nameString)— 表名。
  • table_typeString)— 表类型。可能的值:
    • BASE TABLE
    • VIEW
    • FOREIGN TABLE
    • LOCAL TEMPORARY
    • SYSTEM VIEW
  • table_rowsNullable(UInt64))— 行的总数。如果无法确定则为 NULL。
  • data_lengthNullable(UInt64))— 磁盘上的数据大小。如果无法确定则为 NULL。
  • index_lengthNullable(UInt64))— 主键、次级索引和所有标记的总大小。
  • table_collationNullable(String))— 表的默认校对规则。始终为 utf8mb4_0900_ai_ci
  • table_commentNullable(String))— 创建表时使用的注释。

示例

查询:

结果:

VIEWS

包含从 system.tables 系统表读取的列,当使用表引擎 View 时。

列:

  • table_catalogString)— 表所在数据库的名称。
  • table_schemaString)— 表所在数据库的名称。
  • table_nameString)— 表名。
  • view_definitionString)— 视图的 SELECT 查询。
  • check_optionString)— NONE,不检查。
  • is_updatableEnum8)— NO,视图不可更新。
  • is_insertable_intoEnum8)— 显示创建的视图是否是 materialized。可能的值:
    • NO — 创建的视图不是物化视图。
    • YES — 创建的视图是物化视图。
  • is_trigger_updatableEnum8)— NO,触发器不可更新。
  • is_trigger_deletableEnum8)— NO,触发器不可删除。
  • is_trigger_insertable_intoEnum8)— NO,没有数据插入到触发器中。

示例

查询:

结果:

KEY_COLUMN_USAGE

包含来自 system.tables 系统表的列,这些列受约束限制。

列:

  • constraint_catalogString)— 当前未使用。始终为 def
  • constraint_schemaString)— 约束所属的模式(数据库)名称。
  • constraint_nameNullable(String))— 约束的名称。
  • table_catalogString)— 当前未使用。始终为 def
  • table_schemaString)— 表所属模式(数据库)的名称。
  • table_nameString)— 具有约束的表名称。
  • column_nameNullable(String))— 具有约束的列名称。
  • ordinal_positionUInt32)— 当前未使用。始终为 1
  • position_in_unique_constraintNullable(UInt32))— 当前未使用。始终为 NULL
  • referenced_table_schemaNullable(String))— 当前未使用。始终为 NULL。
  • referenced_table_nameNullable(String))— 当前未使用。始终为 NULL。
  • referenced_column_nameNullable(String))— 当前未使用。始终为 NULL。

示例

结果:

REFERENTIAL_CONSTRAINTS

包含关于外键的信息。目前返回空结果(没有行),这只是为了与像 Tableau Online 的第三方工具提供兼容性。

列:

  • constraint_catalogString)— 当前未使用。
  • constraint_schemaString)— 当前未使用。
  • constraint_nameNullable(String))— 当前未使用。
  • unique_constraint_catalogString)— 当前未使用。
  • unique_constraint_schemaString)— 当前未使用。
  • unique_constraint_nameNullable(String))— 当前未使用。
  • match_optionString)— 当前未使用。
  • update_ruleString)— 当前未使用。
  • delete_ruleString)— 当前未使用。
  • table_nameString)— 当前未使用。
  • referenced_table_nameString)— 当前未使用。

STATISTICS

提供有关表索引的信息。目前返回空结果(没有行),这只是为了与像 Tableau Online 的第三方工具提供兼容性。

列:

  • table_catalogString)— 当前未使用。
  • table_schemaString)— 当前未使用。
  • table_nameString)— 当前未使用。
  • non_uniqueInt32)— 当前未使用。
  • index_schemaString)— 当前未使用。
  • index_nameNullable(String))— 当前未使用。
  • seq_in_indexUInt32)— 当前未使用。
  • column_nameNullable(String))— 当前未使用。
  • collationNullable(String))— 当前未使用。
  • cardinalityNullable(Int64))— 当前未使用。
  • sub_partNullable(Int64))— 当前未使用。
  • packedNullable(String))— 当前未使用。
  • nullableString)— 当前未使用。
  • index_typeString)— 当前未使用。
  • commentString)— 当前未使用。
  • index_commentString)— 当前未使用。
  • is_visibleString)— 当前未使用。
  • expressionNullable(String))— 当前未使用。