Информационную_схему можно рассматривать как «основную базу данных», которая содержит сведения обо всех других базах данных на сервере, таких как имена и типы таблиц, столбцов и пользователей.
Что такое информационная_схема?
С справочная документация:
INFORMATION_SCHEMA обеспечивает доступ к метаданным базы данных.
Метаданные - это данные о данных, такие как имя базы данных или таблицы, тип данных столбца или права доступа.Другими терминами, которые иногда используются для этой информации, являются словарь данных и системный каталог.
INFORMATION_SCHEMA - это информационная база данных, место, где хранится информация обо всех других базах данных, которые поддерживает сервер MySQL.Внутри INFORMATION_SCHEMA есть несколько таблиц только для чтения.Они на самом деле являются представлениями, а не базовыми таблицами, поэтому с ними не связаны никакие файлы.
Что хранится в information_schema?
Вы можете видеть виды вещей, хранящихся в information_schema,и способ их организации, просмотрев эту диаграмму (для MySQL 5.0) или эту диаграмму (для MySQL 5.1).
Что произойдет, если я изменюinformation_schema?
На самом деле information_schema представляет собой набор представлений, доступных только для чтения.Таким образом, должно быть невозможно изменить его и нанести какой-либо ущерб.Тем не менее, MySQL FAQ по этой теме содержит следующее:
23.7.3: можно ли добавлять или иным образом изменять таблицы, найденные в базе данных INFORMATION_SCHEMA?
Нет.Поскольку приложения могут полагаться на определенную стандартную структуру, это не должно быть изменено.По этой причине мы не можем поддерживать ошибки или другие проблемы, возникающие в результате изменения таблиц или данных INFORMATION_SCHEMA.
Это подразумевает, что, если вы обнаружите, что можете изменить информационную_схему (которая должна быть невозможной иMySQL, но реализации SQL других производителей могут это позволить), по крайней мере, вы должны отказаться.Если бы вы могли повредить / изменить information_schema, вы бы повредили фактическую структуру (например, имена таблиц, типы столбцов) других ваших баз данных.
У каждого пользователя есть своя собственная копия information_schema?
Каждый пользователь может видеть информационную схему, которая относится к таблицам и базам данных, к которым он имеет доступ.Некоторые пользователи с сильно ограниченными правами по-прежнему будут видеть информационную_схему, но будут видеть только значения NULL для любых запросов информационной_схемы.Однако важно помнить, что information_schema - это не фактическая база данных, а просто удобный способ, предоставляемый SQL, чтобы вы могли выбирать информацию о ваших базах данных и таблицах.
Из справочная документация:
Каждый пользователь MySQL имеет право доступа к этим таблицам, но может видеть только те строки в таблицах, которые соответствуют объектам, для которых пользователь имеет соответствующие права доступа.В некоторых случаях (например, столбец ROUTINE_DEFINITION в таблице INFORMATION_SCHEMA.ROUTINES) пользователи с недостаточными правами будут видеть NULL.
Где я могу найти дополнительную информацию?