Перейти к основному содержимому
Перейти к основному содержимому

INFORMATION_SCHEMA

INFORMATION_SCHEMA (или: information_schema) является системной базой данных, которая предоставляет (в некоторой степени) стандартизированный, независимый от СУБД обзор метаданных объектов базы данных. Представления в INFORMATION_SCHEMA обычно уступают обычным системным таблицам, но инструменты могут использовать их для получения базовой информации в кросс-СУБД манере. Структура и содержание представлений в 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 для целочисленных типов и 10 для типов Decimal. В противном случае возвращается значение 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)) — STORED GENERATED для колонок типа MATERIALIZED, VIRTUAL GENERATED для колонок типа ALIAS, DEFAULT_GENERATED для колонок типа DEFAULT или 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)) — В данный момент не используется.