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