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
NULL), но должны присутствовать по стандарту.
Столбцы:
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)) — Сейчас не используется.
Query
Response
SCHEMATA
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, не поддерживается.
Query
Response
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)) — Общий размер первичного ключа, вторичных индексов и всех marks.table_collation(Nullable(String)) — collation таблицы по умолчанию. Всегдаutf8mb4_0900_ai_ci.table_comment(Nullable(String)) — Комментарий, используемый при создании таблицы.
Query
Response
VIEWS
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, вставка данных в триггер не выполняется.
Query
Response
KEY_COLUMN_USAGE
constraint_catalog(String) — В настоящее время не используется. Всегдаdef.constraint_schema(String) — Имя схемы (database), к которой относится ограничение.constraint_name(Nullable(String)) — Имя ограничения.table_catalog(String) — В настоящее время не используется. Всегдаdef.table_schema(String) — Имя схемы (database), к которой относится таблица.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.
Query
Response
REFERENTIAL_CONSTRAINTS
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
COLLATIONS
utf8mb4_0900_ai_ci — collation, которую протокол MySQL объявляет при рукопожатии, в SCHEMATA.DEFAULT_COLLATION_NAME и TABLES.TABLE_COLLATION, — и binary — псевдо-collation, которую протокол MySQL указывает для числовых и других нестроковых столбцов в метаданных набора результатов. Это позволяет клиенту с поддержкой MySQL, который использует объявленные collation для поиска в этом представлении, находить их.
Столбцы:
collation_name(String) — Имя collation.character_set_name(Nullable(String)) — Связанная кодировка (utf8mb4дляutf8mb4_0900_ai_ci,binaryдляbinary, в остальных случаяхNULL). Предоставляется для совместимости с MySQL.id(Nullable(UInt64)) — Идентификатор collation MySQL (255дляutf8mb4_0900_ai_ci,63дляbinary, в остальных случаяхNULL). Предоставляется для совместимости с MySQL.is_default(Nullable(String)) — Является ли collation значением по умолчанию для своей кодировки (Yesдля обеих строк совместимости с MySQL, в остальных случаяхNULL). Предоставляется для совместимости с MySQL.is_compiled(Nullable(String)) — Встроена ли collation в сервер (Yesдля обеих строк совместимости с MySQL, в остальных случаяхNULL). Предоставляется для совместимости с MySQL.sortlen(Nullable(UInt64)) — Минимальная длина сортировки (0дляutf8mb4_0900_ai_ci,1дляbinary, в остальных случаяхNULL). Предоставляется для совместимости с MySQL.pad_attribute(Nullable(String)) — Атрибут заполнения:NO PADилиPAD SPACE(NO PADдля обеих строк совместимости с MySQL, в остальных случаяхNULL). Предоставляется для совместимости с MySQL.