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, если не может быть определено.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)) — В настоящее время не используется.