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