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