INFORMATION_SCHEMA
INFORMATION_SCHEMA (information_schema) — это системная база данных, содержащая представления. Используя эти представления, вы можете получить информацию о метаданных объектов базы данных. Эти представления считывают данные из столбцов системных таблиц system.columns, system.databases и system.tables.
Структура и состав системных таблиц могут меняться в разных версиях СУБД ClickHouse, но поддержка information_schema позволяет изменять структуру системных таблиц без изменения способа доступа к метаданным. Запросы метаданных не зависят от используемой СУБД.
INFORMATION_SCHEMA содержит следующие представления:
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, не поддерживается.
Пример
Запрос:
Результат:
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(Enum8) — тип таблицы. Возможные значения:- BASE TABLE
- VIEW
- FOREIGN TABLE
- LOCAL TEMPORARY
- SYSTEM VIEW
 
Пример
Запрос:
Результат:
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, данные не вставляются в триггер.
Пример
Запрос:
Результат: