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).
СТОЛБЦЫ
Содержит столбцы, считанные из системной таблицы system.columns, а также столбцы, которые не поддерживаются в ClickHouse или не имеют смысла (всегда 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, если значение не удалось определить.index_length(Nullable(UInt64)) — Общий размер первичного ключа, вторичных индексов и всех меток.table_collation(Nullable(String)) — Коллация по умолчанию для таблицы. Всегдаutf8mb4_0900_ai_ci.table_comment(Nullable(String)) — Комментарий, использованный при создании таблицы.
Пример
Запрос:
Результат:
ПРЕДСТАВЛЕНИЯ
Содержит столбцы, считываемые из системной таблицы 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)) — В настоящее время не используется.