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

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, если не может быть определено.
  • index_length (Nullable(UInt64)) — Общий размер первичного ключа, вторичных индексов и всех меток.
  • 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)) — В настоящее время не используется.