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 TABLEVIEWFOREIGN TABLELOCAL TEMPORARYSYSTEM 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)) — В данный момент не используется.